replace the elements of a matrix

Hello,
Consider a 100x1 matrix, called A, that contains random values of "0" and "1".
The number of "1" is 25 and the rest 75 are "0".
Also, consider a matrix 25x1, called B, that contains random values.
How can I replace the "1" of matrix A with the values of matrix B?
The "0" of A would not be influenced.
Thank you.
Best,
Pavlos

 採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2014 年 2 月 13 日

0 投票

A(A==1)=B

2 件のコメント

pavlos
pavlos 2014 年 2 月 13 日
Thank you for your response.
Unfortunately, the above code do not work.
It works only when A and B have the same dimensions.
In my case, A is 100x1 and B is 25x1.
The number of "1" in A are 25.
Azzi Abdelmalek
Azzi Abdelmalek 2014 年 2 月 13 日
This is not true. Look at this example
%exmple
A=zeros(100,1);
A(randperm(100,25))=1
B=rand(25,1)
%----------------------
A(A==1)=B

サインインしてコメントする。

その他の回答 (1 件)

Dishant Arora
Dishant Arora 2014 年 2 月 13 日

0 投票

A(find(A==1))=B;

2 件のコメント

Azzi Abdelmalek
Azzi Abdelmalek 2014 年 2 月 13 日
Why to add find when you can do it without it?
Dishant Arora
Dishant Arora 2014 年 2 月 13 日
yeah,got it

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by