Matlab - insert/append rows into matrix iterativel

2019-04-22 21:24发布

How in matlab I can interactively append matrix with rows?

For example lets say I have empty matrix:

m = [];

and when I run the for loop, I get rows that I need to insert into matrix.

For example:

for i=1:5
  row = v - x; % for example getting 1 2 3
  % m.append(row)?
end

so after inserting it should look something like:

m = [
     1 2 3
     3 2 1
     1 2 3
     4 3 2
     1 1 1
]

In most programming languages you can simply append rows into array/matrix. But I find it hard to do it in matlab.

3条回答
兄弟一词,经得起流年.
2楼-- · 2019-04-22 21:45

Just use

m = [m; row];

Take into account that extending a matrix is slow, as it involves memory reallocation. It's better to preallocate the matrix to its full size,

m = NaN(numRows,numCols);

and then fill the row values at each iteration:

m(ii,:) = row;

Also, it's better not to use i as a variable name, because by default it represents the imaginary unit (that's why I'm using ii here as iteration index).

查看更多
【Aperson】
3楼-- · 2019-04-22 22:00

m = [m ; new_row]; in your loop. If you know the total row number already, define m=zeros(row_num,column_num);, then in your loop m(i,:) = new_row;

查看更多
看我几分像从前
4楼-- · 2019-04-22 22:04

To create and add a value into the matrix you can do this and can make a complete matrix like yours. Here row = 5 and then column = 3 and for hence two for loop.

Put the value in M(i, j) location and it will insert the value in the matrix

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)

Provably if you enter the same values given, the output will be like yours,

Full Matrix is = 
1 2 3
3 2 1
1 2 3
4 3 2
1 1 1
查看更多
登录 后发表回答