poster
2019-12-14, 20:13
我有一个二维单元阵列。我要执行以下操作:
y = some_number; row(x) = [row(x) another_row(y)]; 但是,直到发生这种情况才定义row(x),所以行不起作用!当未定义row(x)时,如何简单地将another_row(y)追加到row(x)上?
抱歉,使用其他语言很容易做到这一点,但是我不确定在MATLAB中如何实现!
谢谢。
回答:
您可以首先将row初始化为空数组(或单元格数组),如下所示:
row = []; %# Empty array row = {}; %# Empty cell array 然后,您可以像这样将新行追加到数组(或将新单元格追加到单元格数组):
row = [row; another_row(y)]; %# Append a row to the array row = [row; {another_row(y)}]; %# Append a cell to the cell array 有关创建和连接矩阵的 (http://www.mathworks.com/help/techdoc/math/f1-84864.html)更多信息,请参见文档。
还应注意,像这样的增长阵列不是很有效。假设您知道数组 (http://www.mathworks.com/help/techdoc/matlab_prog/f8-784135.html)的最终大小,则预分配数组 (http://www.mathworks.com/help/techdoc/matlab_prog/f8-784135.html)是一个更好的主意。如果您不知道最终大小, 则以块形式分配数组元素 (https://stackoverflow.com/questions/1548116/matrix-of-unknown-length-in-matlab/1549094#1549094)可能会比一次将它们分配一次更有效。
更多&回答... (https://stackoverflow.com/questions/5250265)
y = some_number; row(x) = [row(x) another_row(y)]; 但是,直到发生这种情况才定义row(x),所以行不起作用!当未定义row(x)时,如何简单地将another_row(y)追加到row(x)上?
抱歉,使用其他语言很容易做到这一点,但是我不确定在MATLAB中如何实现!
谢谢。
回答:
您可以首先将row初始化为空数组(或单元格数组),如下所示:
row = []; %# Empty array row = {}; %# Empty cell array 然后,您可以像这样将新行追加到数组(或将新单元格追加到单元格数组):
row = [row; another_row(y)]; %# Append a row to the array row = [row; {another_row(y)}]; %# Append a cell to the cell array 有关创建和连接矩阵的 (http://www.mathworks.com/help/techdoc/math/f1-84864.html)更多信息,请参见文档。
还应注意,像这样的增长阵列不是很有效。假设您知道数组 (http://www.mathworks.com/help/techdoc/matlab_prog/f8-784135.html)的最终大小,则预分配数组 (http://www.mathworks.com/help/techdoc/matlab_prog/f8-784135.html)是一个更好的主意。如果您不知道最终大小, 则以块形式分配数组元素 (https://stackoverflow.com/questions/1548116/matrix-of-unknown-length-in-matlab/1549094#1549094)可能会比一次将它们分配一次更有效。
更多&回答... (https://stackoverflow.com/questions/5250265)