数据传递和形式转换的问题。
我在放置了一个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变量)
大家给点主意。
谢谢 选择之前,装入mat。然后直接用变量名字就可以了,至于每次变量名字都不一样。那是你存mat的时候自己给自己找的麻烦吧?为什么不存成一样呢? dd = strcat(val1,val2);
可以得到dd=val1val2 用eval命令可以实现,代码如下:
variables = get(hObject,'Value');
temp=load('stringtest.mat');
eval(['Data_for_plot=temp.' variables ';']);
plot(Data_for_plot)
页:
[1]