MATLAB:带有For循环的下标,用于绘图
在MATLAB中,我试图构建一个for循环来绘制x,y的下标对,比如x1,y1,x2,y2和x3,y3。目标是for循环将下标传递到x和y,并绘制3个图形。 代码如下:MATLAB:带有For循环的下标,用于绘图,matlab,for-loop,plot,Matlab,For Loop,Plot,在MATLAB中,我试图构建一个for循环来绘制x,y的下标对,比如x1,y1,x2,y2和x3,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循环在数据中下
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循环在数据中下标以进行绘图呢?x1无法计算为x1,以此类推。动态变量会导致像您这样的问题。首先不要创建它们。如果数据大小相同,则使用ND矩阵,否则使用单元格数组/结构
x = rand(10,1,3);
y = rand(10,1,3);
for k = 1:3
figure;
plot(x(:,:,k),y(:,:,k));
end
x1不能计算为x1,以此类推。动态变量会导致像您这样的问题。首先不要创建它们。如果数据大小相同,则使用ND矩阵,否则使用单元格数组/结构
x = rand(10,1,3);
y = rand(10,1,3);
for k = 1:3
figure;
plot(x(:,:,k),y(:,:,k));
end
啊,我明白了。正如评论中指出的,不要这样做。更好的方法是假设所有变量大小相同:
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
啊,我明白了。正如评论中指出的,不要这样做。更好的方法是假设所有变量大小相同:
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
这就是你不应该创建动态变量的原因,这也是你不应该创建动态变量的原因