How do I create a matrix based on another matrix?

11 次查看(过去 30 天)
Hi everyone,
I have Number of elements which is a input and have an N matrix which is also input. For example, I have NumElem=4 and corrosponding N matrix as N=[1 0 1 0; 3 0 1 1].
What I am trying to do is create a matrix with NumElem rows and 3 columns. Those 3 colums came from N column numbers 2,3,4. For previous example, the matrix would be E=[0 1 0; 0 0 0; 0 1 1; 0 0 0] it takes each N row's first value and assign it as a row in E column. Later, it assign rest of the each N row values to E row but if there is no value for specific row (for example, there is no 2 value at start of any row in matrix N) the corrosponding row (row 2 in matrix E) has all the zero values.
I know i need to use for function but i cannot figure how to obtain matrix row with all zeros.

采纳的回答

Matt J
Matt J 2021-1-19
NumElem=4;
N=[1 0 1 0; 3 0 1 1];
E=zeros(NumElem,3);
E(N(:,1),:)=N(:,2:end)
E = 4×3
0 1 0 0 0 0 0 1 1 0 0 0

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by