在没有for循环的情况下从单个向量中的矩阵中提取行

时间:2013-10-27 19:38:24

标签: matlab vector matrix

A = [1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15];

第一行包含x,第二行y和第三行z-data,我想用scatter 3绘制多个点。此函数将x,y和z数据的向量作为输入参数。我想用一种简单的方法来提取矩阵A的行,这样我就可以将它们存储在单独的向量中,然后可以作为scatter3的输入?

目前我有这个:

vec_x = A(1,:);
vec_y = A(2,:);
vec_z = A(3,:);

scatter3(vec_x, vec_y, vec_z);

是否有更好的方法,它将前三个语句合并为一个方式:

[vec_x, vec_y, vec_z] = A(.....);

1 个答案:

答案 0 :(得分:3)

您可以使用

>> [X,Y,Z] = deal(A(1,:), A(2,:), A(3,:));
>> scatter3(X,Y,Z);

但是,正如rcompton所提到的,一个简单的

>> scatter3(A(1,:), A(2,:), A(3,:));

然后会更短......