如果你有一个来自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数组呢?分隔列的通用代码是什么?感谢
答案 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)。这样更容易使用。