Dear All,
I have a zero matrix A whcih needs to be assigned values from an column vector B. The indecies of those elements are stored in a two-columns array C.
For example, B = [1 9 12 31], C = [1 4;3 6;5 2;6 3]. Then matrix A is =[0 0 0 1 0 0; 0 0 0 0 0 0; 0 0 0 0 0 9;0 0 0 0 0 0; 0 12 0 0 0 0;0 0 31 0 0 0].
Thanks a lot.
Benson

 Réponse acceptée

Stephen23
Stephen23 le 26 Mai 2021
Modifié(e) : Stephen23 le 26 Mai 2021
B = [1,9,12,31];
C = [1,4;3,6;5,2;6,3]
C = 4×2
1 4 3 6 5 2 6 3
A = zeros(6,6);
% assign those values:
X = sub2ind(size(A),C(:,1),C(:,2));
A(X) = B
A = 6×6
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 12 0 0 0 0 0 0 31 0 0 0
For comparison:
[0 0 0 1 0 0; 0 0 0 0 0 0; 0 0 0 0 0 9;0 0 0 0 0 0; 0 12 0 0 0 0;0 0 31 0 0 0]
ans = 6×6
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 12 0 0 0 0 0 0 31 0 0 0

Plus de réponses (0)

Catégories

En savoir plus sur Sparse Matrices dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by