How to create a matrix using conditional statements in a loop based in another matrix
이전 댓글 표시
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 !
채택된 답변
추가 답변 (2개)
madhan ravi
2019년 3월 20일
편집: madhan ravi
2019년 3월 20일
H=zeros(size(Comb,1),1);
idx=any(Comb,2);
H(idx)=sum(Comb(idx,:),2)
댓글 수: 4
Rachel Sabioni
2019년 3월 20일
madhan ravi
2019년 3월 20일
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
2019년 3월 20일
Ah messed up with any() , use
all(Comb,2)
Rachel Sabioni
2019년 3월 22일
Joel Newton
2019년 10월 10일
편집: Joel Newton
2019년 10월 10일
0 개 추천
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
Andrei Bobrov
2019년 10월 10일
Hi Joel! Please ask your question through the menu tab ('Ask' tab).

카테고리
도움말 센터 및 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!