How to implement the counter (really simple)?

1 Ansicht (letzte 30 Tage)
Rengin
Rengin am 23 Sep. 2015
Kommentiert: C.J. Harris am 23 Sep. 2015
% 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!

Antworten (2)

C.J. Harris
C.J. Harris am 23 Sep. 2015
Bearbeitet: C.J. Harris am 23 Sep. 2015
Infeasibles = any((A<=0) | (B>100),2);
  2 Kommentare
Rengin
Rengin am 23 Sep. 2015
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 am 23 Sep. 2015
Sure, just update your original code, changing the line:
Infeasibles(nr)=0;
To:
Infeasibles(nr)=max(0,Infeasibles(nr));

Melden Sie sich an, um zu kommentieren.


Thorsten
Thorsten am 23 Sep. 2015
You can write
idx = ~(all(A > 0, 2) & all(B < 100, 2))
  1 Kommentar
Rengin
Rengin am 23 Sep. 2015
Isn't it possible to put it into a for loop. It is more convenient for my whole script.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Numeric Types 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!

Translated by