How to quickly assign the values of a matrix using a given array?
3 次查看(过去 30 天)
显示 更早的评论
Dear All,
I have an array A which contains two columns of integers. I want to build a matrix B in the following way.
For example,
A = [2 9; 1 5; 8 3]
The matrix B should be suilt as follows:
B = [0 1 0 0 0 0 0 0 -1 0; 1 0 0 0 -1 0 0 0 0 0; 0 0 -1 0 0 0 0 1 0 0]
How can I create matrix B for a goven A?
Thanks.
Benson
0 个评论
采纳的回答
DGM
2021-5-23
编辑:DGM
2021-5-23
Here is one way:
A = [2 9; 1 5; 8 3]
s = [size(A,1) 10]; % you're going to have to specify the output width
B = zeros(s);
B(sub2ind(s,(1:s(1)).',A(:,1))) = 1;
B(sub2ind(s,(1:s(1)).',A(:,2))) = -1;
B % show the result
2 个评论
DGM
2021-5-24
I really have no familiarity with handling sparse matrices or how to optimize for them. I'm sure someone else can though.
更多回答(1 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!