How to include specific rows and columns of matrices into a zero matrix
15 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Stefano Russo
le 12 Juil 2023
Modifié(e) : Stephen23
le 12 Juil 2023
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 commentaires
Réponse acceptée
Dirk Engel
le 12 Juil 2023
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.
Plus de réponses (1)
Malay Agarwal
le 12 Juil 2023
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 commentaires
Stephen23
le 12 Juil 2023
Modifié(e) : Stephen23
le 12 Juil 2023
"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:
Voir également
Catégories
En savoir plus sur Characters and Strings dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!