nn_pyq 发表于 2008-10-31 12:53

数据传递和形式转换的问题。

我在放置了一个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的时候自己给自己找的麻烦吧?为什么不存成一样呢?

wuqiong_cea 发表于 2008-11-11 14:45

dd = strcat(val1,val2);

可以得到dd=val1val2

ydlcsu 发表于 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]
查看完整版本: 数据传递和形式转换的问题。