Storing matrices value based on another matrix
11 views (last 30 days)
Show older comments
I have a 5 by 5 matrix such as A =
0 1 0 0 0
1 0 0 0 1
2 0 0 0 0
0 0 0 0 0
0 0 1 0 0
And another column matrix B =
0.05
0.10
0.15
0.20
0.25
I have to solve the following problems
“If there is a non zero number in A matrix, it will look into same row of B matrix and store the B matrix number in another matrix named as C. If the non-zero number in A matrix is greater than 1, then it will store that number of times of B matrix same row value in C ”.
So, here C will be,
0.10 0.05 0.25 Nan 0.10
0.15 Nan Nan Nan Nan
0.15 Nan Nan Nan Nan
How can I write a code for C? Thanks in advance.
2 Comments
dpb
on 3 Aug 2019
What have you done so far and where, specifically, did you have a particular ML question? We don't just solve homework problems w/o seeing effort being made.
The partial solution for C doesn't appear at all to match the output requested from the problem description, however.
Accepted Answer
the cyclist
on 3 Aug 2019
Edited: the cyclist
on 3 Aug 2019
Here is a straightforward algorithm:
[M,N] = size(A);
C = nan(max(sum(A,1)),N);
for jj = 1:N
row = 1;
for ii = 1:M
idx = A(ii,jj);
C(row:row+idx-1,jj) = B(ii);
row = row+idx;
end
end
More Answers (0)
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!