How to put the values into the specific location?

12 次查看(过去 30 天)
I have a list of location like this:
location =
1 2
1 4
2 3
4 2
From above, it describes thatt the location is (1,2),(1,4),(2,3),and (4,2)
Then i have a values like this:
Values =
55
22
99
11
I want to put the values into the location above. So the result of matrix A is like this:
A =
2 55 4 22
4 7 99 5
9 1 2 5
7 11 4 2
What to do?
Thanks before :')

采纳的回答

Andrei Bobrov
Andrei Bobrov 2012-5-3
A = zeros(4);
location =[...
1 2
1 4
2 3
4 2];
Values =[...
55
22
99
11];
A(sub2ind(size(A),location(:,1),location(:,2))) = Values;
OR:
A(bsxfun(@minus,location,[0 1])*[1;size(A,1)]) = Values;
  2 个评论
Isti
Isti 2012-5-3
thanks :)
anyway what's the difference between sub2ind and bsxfun function?
Andrei Bobrov
Andrei Bobrov 2012-5-3
please read about functions:
sub2ind - http://www.mathworks.com/help/techdoc/ref/sub2ind.html;
bsxfun - http://www.mathworks.com/help/techdoc/ref/bsxfun.html.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by