声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1376|回复: 3

[GUI界面] 数据传递和形式转换的问题。

[复制链接]
发表于 2008-10-31 12:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我在放置了一个listbox,我想要点击里面的某个字符串,就能实现自动找到.mat文件里面的对应的变量, 读入变量,然后画图。
问题,怎么把.mat存的变量和listbox里面的名字连起来?

我的代码:

tlabels=who('-file', stringtest.mat);%读取stringtest.mat文件的里面所有的变量名, 存在tlabels里面。这里读出来的tlabels是cell.
set(handles.variables_select_test,'String',tlabels); %把变量名付给listbox的string, listbox显示所有变量的名字。
set(handles.variables_select_test,'Value',1);

String_mo=get(hObject,'String');

variables = get(hObject,'Value');
switch variables
    case '变量名1’
       %这里要导入(在listbox里面显示的比如说速度speed)mat里面对应的变量(speed)
       %然后使用变量的数据(比如说画图)
    case '变量名2’
       %导入(在listbox显示的,比如说温度),.mat文件里面的另外一个变量(temp.)
       %数据使用
end

最好就是自动连接,不要事先设定好的, 因为每次导入的.mat文件里面的,变量的名字都是不一样的, 不一定是用speed和temperature做名字。 case下面的代码我想了好久都不知道怎么写, 因为load命令读不到listbox里面选中的变量(读到了也是struct型,很难处理,因为第二步我要用这个变量画图,plot命令不能直接画struct变量)

大家给点主意。

谢谢

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2008-10-31 13:26 | 显示全部楼层
选择之前,装入mat。然后直接用变量名字就可以了,至于每次变量名字都不一样。那是你存mat的时候自己给自己找的麻烦吧?为什么不存成一样呢?
发表于 2008-11-11 14:45 | 显示全部楼层
dd = strcat(val1,val2);

可以得到dd=val1val2
发表于 2008-11-29 22:25 | 显示全部楼层
用eval命令可以实现,代码如下:

variables = get(hObject,'Value');
temp=load('stringtest.mat');
eval(['Data_for_plot=temp.' variables ';']);
plot(Data_for_plot)

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 17:46 , Processed in 0.079554 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表