MATLAB:在工作区中绘制变量,而无需手动更改其下标

时间:2019-04-25 20:20:57

标签: matlab loops plot

我的可变工作区中有3套不同的数据集,并在其下标有一个用于标识的下标。

工作区中的第一个集:

lat1 = rand(10,1);
long1 = rand(10,1);
alt1 = rand(10,1);
time1 = rand(10,1);

工作区中的第二组:

lat2 = rand(10,1);
long2 = rand(10,1);
alt2 = rand(10,1);
time2 = rand(10,1);

工作区中的第三组:

lat3 = rand(10,1);
long3 = rand(10,1);
alt3 = rand(10,1);
time3 = rand(10,1);

每次,我都手动输入代码并更改下标,例如从plot(time1,lat1) TO plot(time2, lat2)开始。我想使用for循环(或其他构造选择)来绘制所有这些数据集,而不必每次都更改下标进行绘制。类似以下内容或另一种实现所选输出的方法:

for k = 1:3
plot(time1(k), lat(k))
plot(time1(k), long(k))
plot(time1(k), alt(k))
end

1 个答案:

答案 0 :(得分:2)

您的问题不是很清楚,所以我不太了解您想要什么,但是我认为这可能会有所帮助。

您可以将它们放入数组并在数组中绘制不同的列吗?

类似的东西:

lat = rand(10,3);
long = rand(10,3);
alt = rand(10,3);
time = rand(10,3);

for ii=1:3
    figure
    hold on
    plot(time(:,ii),long(:,ii),'o')
    plot(time(:,ii),alt(:,ii),'o')
    plot(time(:,ii),lat(:,ii),'o')
end

然后,如果要更改其中一个变量,只需更改相应的列即可。例如,如果您想更改lat3的等效项,只需设置

lat(:,3)=rand(10,1)