Asign data with index or something...

2 vues (au cours des 30 derniers jours)
Gimpy
Gimpy le 21 Août 2014
Hi, I have the following inputs:
row=[3,7,10]
col=[1,2,3]
data=rand(1,3)
data =
0.91 0.63 0.10
matrix=zeros(3,3)
And I want to replace the following row in matrix: row 3, coll 7 by 0.81 instead of 0
row 7, coll 2 by 0.63 instead of 0
row 10, coll 3 by 0.1 instead of 0
Any idea?
PS: wihtout loop and the real matrix a much more biger and it need to be dynamic the answer.
Thank you!

Réponse acceptée

Sean de Wolski
Sean de Wolski le 21 Août 2014
You've defined matrix to be a 3x3 but want to reference the 7th and 10th row. How big should it be?
If you just want it to be "big enough"
M = zeros(max(row),max(col));
M(sub2ind(size(M),row,col)) = data

Plus de réponses (1)

Matt J
Matt J le 21 Août 2014
matrix = sparse(row,col,data)

Catégories

En savoir plus sur Programming 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!

Translated by