【发布时间】:2017-09-15 13:50:46
【问题描述】:
这就是问题所在:
我有一个大小为MxN 的矩阵,我想把它分成一个大小为1xM 的单元格,但单元格的每一行M 包含一个大小为1xNi 的数组(这意味着数组有不同的大小)。
我正在尝试使用 mat2cell 函数执行此操作,但我想避免使用循环,但我不知道该怎么做。
我将尝试用一个例子来解释我的问题。假设我有一个矩阵
X = [1,4,6,9; 2,3,6,7; 5,9,8,7; 9,8,7,10]
我想要代码做的是获取每行的值 X<=6 并将它们放入 1xM 单元格中。所以答案应该是:
ans =
C{1} = [1,4,6]
C{2} = [2,3,6]
C{3} = [5]
C{4} = []
到目前为止,我已经创建了一个循环,它遍历矩阵的所有行以找到满足条件的元素:
for i = 1:Mrows
C{i} = X(i,X(i,:)<=6,:);
end
这给了我想要的结果,但特别是当矩阵的大小非常大时需要太多时间。
【问题讨论】:
标签: arrays matlab matrix cell cell-array