【发布时间】:2016-06-02 15:03:41
【问题描述】:
我有包含电流和电压的大数据文件。我多次测量我的设备,但测量次数各不相同。我首先问用户有多少轮测量,然后我做一个循环从数据中提取电流。我当前的变量是 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”?
【问题讨论】:
-
不要这样做。使用元胞数组保存数据,而不是使用
assignin。 -
我在帖子末尾询问了我应该如何做到这一点。由于每个电流已经是一个 200x3000 双精度数组,我应该如何创建一个数组数组?
-
我刚才说了。一个元胞数组。
Isd1_round{i} = val.Isd1 -
或者一个元胞数组 :) 我喜欢尽可能使用普通数组(即当所有子数组的大小相同时)。