How to create a matrix using conditional statements in a loop based in another matrix
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Rachel Sabioni
am 20 Mär. 2019
Kommentiert: Andrei Bobrov
am 10 Okt. 2019
Hello,
I have a matrix and I want to generate another matrix according to their elements using a loop.
If one ore more elements of a row is ==0 the correspondent row in the new matrix need to be 0.
If not, it needs to be the sum of the elements in the row.
Comb = % The initial matrix
0 0
4.303 0
2.68 0
0 1.705
4.303 1.705
2.68 1.705
% I need this output:
H = [0
0
0
0
6.008
4.385]
I started with this loop:
for i = 1:size(Comb, 1)
for j = 1:size(Comb, 2)
x = (sum(Comb'))'
if abs(Comb(i,j)) == 0
end
end
end
But it gives that:
x =
0
4.303
2.68
1.705
6.008
4.385
I do not know what insert on the if to display zeros when one element of the row is equal to zero.
Could you help me ?
Thans in advance !
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (2)
madhan ravi
am 20 Mär. 2019
Bearbeitet: madhan ravi
am 20 Mär. 2019
H=zeros(size(Comb,1),1);
idx=any(Comb,2);
H(idx)=sum(Comb(idx,:),2)
4 Kommentare
Joel Newton
am 10 Okt. 2019
Bearbeitet: Joel Newton
am 10 Okt. 2019
Hi, i wish to make a new matrix from the one below such that if the difference between elements in the second and third row is plus or minus 2 return a value of the mid point in each element of the new matrix. if the difrrence is more than 2 then keep the values from the old matrix in the new matrix.
orginal data =
1 1 1 1
10 10 10 9
14 11 14 11
new matrix should look like this =
1 1 1 1
10 10.5 10 10
14 10.5 14 10
my data set has multiple rows of this 3 block of values (if that makes sense), how do I then iterate down for the rest of the data?
Thanks!
1 Kommentar
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements 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!
