How to implement the counter (really simple)?

조회 수: 2 (최근 30일)
Rengin
Rengin 2015년 9월 23일
댓글: C.J. Harris 2015년 9월 23일
% Dear Users,
% My problem and simple script are as below:
clear all
clc
nrow=5;
ncolumn=3;
maxinfeas=1;
Infeasibles=zeros(nrow,1);
A=[-1 5 6 ; 4 2 3 ; 9 -7 1 ; 7 3 8 ; 4 0 1];
B=[75 60 90 ; 80 150 65 ; 20 10 40 ; 70 30 80 ; 100 20 35];
for nr=1:nrow
for nc=1:ncolumn
if A(nr,nc)>0 && B(nr,nc)<=100
Infeasibles(nr)=0;
else
Infeasibles(nr)=maxinfeas;
end
end
end
% Although expected matrix is Infeasibles=[1;1;1;0;1], Matlab adjusts it as Infeasibles=[0;0;0;0;0]
% How can I correct the code?
% Thanks a lot!

답변 (2개)

C.J. Harris
C.J. Harris 2015년 9월 23일
편집: C.J. Harris 2015년 9월 23일
Infeasibles = any((A<=0) | (B>100),2);
  댓글 수: 2
Rengin
Rengin 2015년 9월 23일
Isn't it possible to put it into a for loop? It is more convenient for my whole script.
C.J. Harris
C.J. Harris 2015년 9월 23일
Sure, just update your original code, changing the line:
Infeasibles(nr)=0;
To:
Infeasibles(nr)=max(0,Infeasibles(nr));

댓글을 달려면 로그인하십시오.


Thorsten
Thorsten 2015년 9월 23일
You can write
idx = ~(all(A > 0, 2) & all(B < 100, 2))
  댓글 수: 1
Rengin
Rengin 2015년 9월 23일
Isn't it possible to put it into a for loop. It is more convenient for my whole script.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Numeric Types에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by