How to replace zeros in one matrix with another matrix
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello, how to replace zeros in one matrix with another matrix using if statement? Dimensions are the same; first matrix has 10 zeros and second matrix has 10 numbers. Thanks for answers J
3 Kommentare
Geoff Hayes
am 19 Dez. 2016
J's answer moved here
Matrix B=[1 0 0 0 0;2 3 0 0 0;4 5 6 0 0;7 8 9 10 0;11 12 13 14 15] You can see that "triu" of matrix B is made of zeros. I need to replace zeros in matrix B using IF statement with matrix A=[1 2 3 4 5;6 7 8 9 10]. Orientation is set and number of zeros is matching matrix A.
Antworten (3)
Andrei Bobrov
am 19 Dez. 2016
A = [1:3, 0,0 7,12,0]';% your first array
B = randi(20,8,1); % your second array
t = A == 0;
A(t) = B(t);
0 Kommentare
Guillaume
am 19 Dez. 2016
An example would clarify what you want. Possibly:
To replace all zero values in A by consecutive values in B, B must have as many elements as there are zeros in A:
assert(numel(B) == numel(A == 0)); %B must have as many elements as there are zeros in A
A(A == 0) = B %replace zeros values in A by values in B
or to replace zeros values in A by values in B in the same position, B must be the same size as A:
assert(isequal(size(B), size(A)));
A(A == 0) = B(A == 0)
An if is most likely not needed.
0 Kommentare
arwa
am 19 Dez. 2016
x = [0 0 0 0 0 0 0 0 0 0]; z = [1 2 3 4 5 6 7 8 9 10]; for i=1:1:10 x(1:i)=z(1:i); end
then you can get x = [1 2 3 4 5 6 7 8 9 10] like z instead of zeros..
Do you mean this??
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!