如何在matlab中以交互方式在行中附加矩阵?
例如,假设我有空矩阵:
m = [];
当我运行for循环时,我得到了需要插入矩阵的行。
例如:
for i=1:5
row = v - x; % for example getting 1 2 3
% m.append(row)?
end
所以插入后应该看起来像:
m = [
1 2 3
3 2 1
1 2 3
4 3 2
1 1 1
]
在大多数编程语言中,您只需将行追加到数组/矩阵中即可。但我发现在matlab中很难做到这一点。
答案 0 :(得分:17)
m = [m ; new_row];
。如果您已知道总行数,请定义m=zeros(row_num,column_num);
,然后在循环中m(i,:) = new_row;
答案 1 :(得分:2)
只需使用
m = [m; row];
考虑到扩展矩阵很慢,因为它涉及内存重新分配。最好将矩阵预分配到其完整大小,
m = NaN(numRows,numCols);
然后在每次迭代时填充行值:
m(ii,:) = row;
此外,作为变量名称更好not to use i
,因为默认情况下它代表虚构单位(这就是我在这里使用ii
作为迭代索引的原因)。
答案 2 :(得分:0)
要在矩阵中创建并添加值,您可以执行此操作,并可以创建与您的完整矩阵。 这里行= 5 然后列= 3 ,因此有两个for循环。
将值放在M(i, j)
位置,它会将值插入矩阵
for i=1:5
for j=1:3
M(i, j) = input('Enter a value = ')
end
fprintf('Row %d inserted successfully\n', i)
end
disp('Full Matrix is = ')
disp(M)
如果你输入相同的值,那么输出就像你的那样,
Full Matrix is =
1 2 3
3 2 1
1 2 3
4 3 2
1 1 1