我有大电流和电压的大数据文件。我测量了几次我的设备,但测量次数各不相同。我首先询问用户有多少轮测量,之后我循环从数据中提取电流。我当前的变量是200x3000双精度数组。我称它们为例如Isd_round1,Isd_round2等......
for i=1:rounds_number
[filename,pathname]=uigetfile('*.mat', 'Select matlab data');
pathname = cd(pathname);
pathname = strcat(pathname, '\', filename);
Val=load(pathname);
assignin('base', ['Isd1_round' num2str(i)], Val.Isd1)
...etc...
end
之后,我想绘制并比较电流,但我似乎找不到通过改变索引来调用变量的方法。我想做这样的事情:
figure
hold on
for j=1:rounds_number
plot(V, Isd_roundj)
end
我不知道如何通过更改循环中的索引来调用变量。
我也可以做一个所有电流的数组,但由于每个电流已经是(n,m)双数组,我怎样才能创建一个变量“current”,我将指定“Isd_round1”?
答案 0 :(得分:0)
我建议使用单元格数组来存储数据,如前所述。以下是一些示例代码,如何执行此操作:
dataCell = cell(rounds_number,1)
% read data in
for i=1:rounds_number
[filename,pathname]=uigetfile('*.mat', 'Select matlab data');
pathname = cd(pathname);
pathname = strcat(pathname, '\', filename);
Val=load(pathname);
dataCell{i} =Val
end
%plot
for i=1:rounds_number
plot(dataCell{i})
end
%quicker, warning this plots all rounds at once
cellfun(@(x) plot(x),dataCell)