I have text file (66*3 matrix), the first column is the row # , the second column is column # and the 3rd column is a value, how can I populate another matrix with the info given in the text file using for loop or any other method.
Hope I conveyed my message well.
Thanks

1 commentaire

Kevin
Kevin le 2 Mar 2013
Modifié(e) : Walter Roberson le 2 Mar 2013
Im gonna go with a smaller sample to clarify like 5*3 text file,
test.txt = [ 0 0 78
;1 0 24
;1 1 25
;2 0 18
;2 1 -54 ]
so the new populated matrix would be NewMatrix = [78 0 0 ;24 25 0 ;18 -54 0]
Thanks

Connectez-vous pour commenter.

 Réponse acceptée

Walter Roberson
Walter Roberson le 2 Mar 2013

1 vote

rcv = reshape(sscanf(fileread('YourTextFile.txt'),'%f'),3,[]).';
YourMatrix = accumarray(rcv(:,1:2), rcv(:,3));

5 commentaires

Kevin
Kevin le 2 Mar 2013
thanks for your answer but it did not work
0 is not a row or column number.
Does your text file contain the '[' and ']' and the ';' ? Or does it contain only what was described, as in
1 1 78
2 1 24
2 2 25
3 1 18
3 2 -54
?
Notice the correction of the erroneous row and column inputs you had.
Kevin
Kevin le 2 Mar 2013
Hey, no its just separated by space, only what it was described, but there are zeroes in there though, what should I do?
Kevin
Kevin le 2 Mar 2013
Modifié(e) : Kevin le 2 Mar 2013
Okay I fixed it now it is exactly like
1 1 78 2 1 24 2 2 25 3 1 18 3 2 -54
now How do I turn it to
78 0 0 24 25 0 18 -54 0 ? thanks
Kevin
Kevin le 2 Mar 2013
Thanks after a lot of trial and errors it worked thanks

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

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