【问题标题】:MATLAB: Subscript with a For Loop to PlotMATLAB:使用 For 循环绘制下标
【发布时间】:2019-04-24 12:00:41
【问题描述】:

在 MATLAB 中,我正在尝试构建一个 for 循环来绘制 x,y 的下标对,例如 x1,y1, x2,y2x3,y3。目标是 for 循环将下标传递给 x 和 y 并绘制 3 个数字。
代码如下:

x1 = rand(10,1);
y1 = rand(10,1);
x2 = rand(10,1);
y2 = rand(10,1);
x3 = rand(10,1);
y3 = rand(10,1);

for i = 1:3
plot(x(i),y(i))
end

但是,我遇到了一个错误。那么如何使用 for 循环对数据进行下标以进行绘图?

【问题讨论】:

  • 这就是你永远不应该创建动态变量的原因

标签: matlab for-loop plot


【解决方案1】:

x(1) 无法评估为 x1 等等。动态变量会导致像您这样的问题。不要一开始就创建它们。如果您的数据具有相同的大小,则使用 ND 矩阵,否则使用元胞数组/结构。

x = rand(10,1,3);
y = rand(10,1,3);

for k = 1:3
    figure;
    plot(x(:,:,k),y(:,:,k));
end

【讨论】:

    【解决方案2】:

    啊,我明白了。正如 cmets 所指出的,不要那样做。更好的方法是(假设所有变量的大小相同):

    X = rand(10,3);
    Y = rand(10,3);
    
    for k=1:size(X,2)
        figure
        plot(X(:,k),Y(:,k)) % creates 3 different figures
    end
    

    【讨论】:

      猜你喜欢
      • 2016-09-29
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      • 2016-02-09
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多