如何在matlab中分隔列

时间:2015-02-27 02:44:59

标签: matlab

如果你有一个来自for循环的数组

for a =1:3;
    for b=1:3;
        for c=1:3;
            disp([a(:) b(:) c(:)])

        end
    end
end

并且您想要分隔输出的每一列

将每列需要此代码分开:假设数据存储在'A'数组中:

yy = A(:,1)
yx = A(:,2)
yz = A(:,3)
and so on...

但是如果您不知道数组的大小或者您是否有m x n数组呢?分隔列的通用代码是什么?感谢

2 个答案:

答案 0 :(得分:1)

你可以这样做:

y = [1  1   1   1   1
1   2   3   1   1   
1   0   2   2   1]


[m,n] = size(y)
for i=1:n
   C{i} = y(:,i);
end

现在,您可以通过C(1)C(2)C(3)等访问每列。C如下所示:

C =
{
  [1,1] =
     1
     1
     1
  [1,2] =
     1
     2
     0
  [1,3] = 
     1
     3
     2
}

C(2)的输出是:

ans =    
{
  [1,1] =
     1   
     2   
     0   
}

也就是说,最好坚持使用从矩阵(y(:,1))直接访问列的代码,而不是创建一堆动态变量。

答案 1 :(得分:0)

您如何管理这些列分开?将它们命名为y1,y2,.....并不是一个好主意。

如果你想拿起第i列,只需使用y(:,i)。这样更容易使用。