How to include specific rows and columns of matrices into a zero matrix
8 次查看(过去 30 天)
显示 更早的评论
Hi everyone,
I have a vector V (1x8) that include the number ID of some columns of a zero matrix A=[2x30000].
For the specific columns included in the vector V, I have a matrix M (2x8) that includes the values corresponding to that specific column.
Since I need this for an iterative process, is there a way to use the vector V to identify the corresponding column of the A, and then use it as a reference to insert at those specific columns the numbers of M?
Thank you in advance.
As an example:
A=zeros(2,8);
V=[1 4 7];
M=[1 2 3; 4 5 6];
ResultingA= [1 0 0 2 0 0 3 0;4 0 0 5 0 0 6 0];
0 个评论
采纳的回答
Dirk Engel
2023-7-12
A(:, V) = M
inserts M into A at columns V.
This works if M and A have the same number of rows, and if M has as many columns as there are indices in V. Otherwise, you wil get some kind of indexing error.
更多回答(1 个)
Malay Agarwal
2023-7-12
You can do this as shown:
A=zeros(2,8);
V=[1 4 7];
M=[1 2 3 4 5 6 7 8; 9 10 11 12 13 14 15 16];
A(:, V) = M(:, V);
A
3 个评论
Stephen23
2023-7-12
编辑:Stephen23
2023-7-12
"I'm attaching my variables, as I cannot make it work. It gives out this error: Index in position 2 exceeds array bounds. Index must not exceed 176."
The code given in this answer is buggy. The correct approach does not index into the RHS, as Dirk Engel showed here:
Using your data:
S = load('variables.mat')
A = zeros(2,30000);
A(:,S.nN) = S.N
You might like to consider doing the introductory tutorials, which show how to do indexing operations:
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!