Copy values from a vector to a matrix
7 次查看(过去 30 天)
显示 更早的评论
i have a problem trying to replace (copy) values from a vector to a matrix. So given this matrix
1 1 1
1 1 1
1 1 1
0 0 1
0 0 1
0 0 1
the plan is to copy values from this vector V=[0;10;20;30;40;50;60;70;80;90;100;110;120] starting from 10 ,V(2), into columns of the above matrix , to obtain this:
10 40 70
20 50 180
30 60 190
0 0 100
0 0 110
0 0 120
0 个评论
采纳的回答
Geoff Hayes
2016-1-9
sami - if
A = [1 1 1
1 1 1
1 1 1
0 0 1
0 0 1
0 0 1];
and
V = [0;10;20;30;40;50;60;70;80;90;100;110;120];
then try
A(A>0) = V(2:end);
In the above, A>0 returns a logical matrix of ones and zeros where a one indicates that the element of A is greater than zero (as per our condition) and zero indicates that the element of A is less than or equal to zero. A(A>0) is then just those non-zero elements of A. We then assign all of the non-zero values of V (so from index two onwards) to those elements of A that are non-zero.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!