How to create a matrix using conditional statements in a loop based in another matrix
Ältere Kommentare anzeigen
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 !
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
Rachel Sabioni
am 20 Mär. 2019
madhan ravi
am 20 Mär. 2019
I have no idea why you get the result, I got the result as your expected output. Try
clear all
at the beginning and try again just try the answer I gave.
madhan ravi
am 20 Mär. 2019
Ah messed up with any() , use
all(Comb,2)
Rachel Sabioni
am 22 Mär. 2019
Joel Newton
am 10 Okt. 2019
Bearbeitet: Joel Newton
am 10 Okt. 2019
0 Stimmen
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
Andrei Bobrov
am 10 Okt. 2019
Hi Joel! Please ask your question through the menu tab ('Ask' tab).

Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!