Indexing and replacing value in a zero matrix based on a table

8 views (last 30 days)
Hello,
I am trying to input a value in a zeros matrix of size 11*10. This is based on a variable which has three columns (Number, ID, ANS) as shown below. Now I want to insert the value in ANS which is -1 in the zeros matrix at 10x5 (ID x Number) position (index). Any suggestion on how this can be done?
Number ID ANS
5 10 -1

Accepted Answer

Walter Roberson
Walter Roberson on 19 Dec 2018
If your Number and ID and ANS are scalar then
YourMatrix(Number, ID) = ANS;
If they are vectors then there are multiple approaches, including:
YourMatrix( sub2ind(size(YourMatrix), Number(:), ID(:)) ) = ANS(:);
Or
YourMatrix = YourMatrix + accumarray( Number(:), ID(:), ANS(:), size(YourMatrix) );
and there are approaches using sparse.

More Answers (1)

Arvind Sathyanarayanan
Arvind Sathyanarayanan on 19 Dec 2018
Is this what you're looking for?
ID = 10; Number = 5; Ans = -1;
tmat = zeros(11,10);
tmat(ID,Number)=Ans;

Categories

Find more on Word games in Help Center and File Exchange

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!