我有一个128 X 8192矩阵 . 我已将它拆分为大小为1X64的单元阵列,每个使用:
C = mat2cell(input_matrix,repmat(1,[1 128]),repmat(64,[1 128]));
现在我需要将每个单元格数组传递给一个函数'fn_X' . 此函数返回不同大小的数组 . 我需要传递的每个单元格数组的输出存储在结果矩阵中 . 我使用了以下代码:
for(irl = 1 : 128)
for(jrl = 1 : 128)
Output_matrix(irl,jrl) = fn_X(C{irl,jrl});
end
end
这给了我一个错误'Subscripted assignment dimension mismatch' .
然后我使用以下代码在列矩阵中尝试了它:
king = 1;
for(irl = 1 : 128)
for(jrl = 1 : 128)
Output_matrix(king) = fn_X(C{irl,jrl});
king = king + 1;
end
end
这给了我一个错误'在一个任务A(I)= B中,B和I中的元素数必须相同 .
我还尝试使用以下代码使用单元格数组赋值:
king = 1;
for(irl = 1 : 128)
for(jrl = 1 : 128)
Output_matrix(king) = fn_X(C{irl,jrl});
king = king + 1;
end
end
这给出了错误'单元格内容分配给非单元数组对象' .
关于我如何处理这个问题的任何建议?
1 回答
您的代码上的问题是应该在赋值的左侧使用大括号:
但这可能是正确的做法.1874270_正确的做法 . 这不是语言的"style",有意义的方法是矢量化,这可能需要
fn_X
处理这个本身 .或者,你也可以用更简单的方式(通常更快)来做到这一点: