Operands to the || and && operators must be convertible to logical scalar values.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Thayumanavan
am 10 Apr. 2014
Beantwortet: sai m
am 3 Mär. 2015
%Code x=[1.01 ;2.23; 3.456 ;4.11; 5.897 ;6.234; 7.456; 8.567; 9.110; 10.333];
a=0;
if((x>=5.2)&&(x<=8.50))
disp('Inside if loop');
a=a+1;
end
a
I want the no of values greater than some value and less than some value in a 1D array. If i am going for if statement with sysntax if((x(:,1)>=5.2)&&(t(:,1)<=8.50)) i am getting Operands to the and && operators must be convertible to logical scalar values error.
If i use if((x(:,1)>=5.2)&(t(:,1)<=8.50)) flow is not going inside the loop and i am not able to get the count as 3 .
1 Kommentar
Image Analyst
am 10 Apr. 2014
You don't have a loop at all! There is no "for" and an "if" block is not a loop.
Akzeptierte Antwort
Image Analyst
am 10 Apr. 2014
Try this:
x=[1.01 ;2.23; 3.456 ;4.11; 5.897 ;6.234; 7.456; 8.567; 9.110; 10.333];
for k = 1 : length(x)
if x(k) >= 5.2 && x(k) <=8.50
fprintf('x(%d) = %f and is in range so we are inside if block.\n', k, x(k));
end
end
In command window:
x(5) = 5.897000 and is in range so we are inside if block.
x(6) = 6.234000 and is in range so we are inside if block.
x(7) = 7.456000 and is in range so we are inside if block.
0 Kommentare
Weitere Antworten (3)
Marta Salas
am 10 Apr. 2014
Bearbeitet: Marta Salas
am 10 Apr. 2014
find returns the indexes of the values that holds the condition 5.2=< x >=8.50
index = find(x>=5.2 & x<=8.50)
To know the number of values, you can check the size of index
length(index)
2 Kommentare
Marta Salas
am 10 Apr. 2014
That code works for me.
I would suggest you to use fprintf instead of disp to print comments with variables
fprintf('the count is %d \n',a);
Horia
am 18 Mai 2014
Try: if condition 1 do something else if condition 2 do the samething; else do something else break; end; end;
0 Kommentare
sai m
am 3 Mär. 2015
if(get(handles.radiobutton1,'Value') == 0 && get(handles.radiobutton2,'Value') == 0 && get(handles.radiobutton5,'Value') == 0 && get(handles.radiobutton6,'Value' == 0 && get(handles.radiobutton7,'Value') == 0 && get(handles.radiobutton8,'Value') == 0 && get(handles.radiobutton9,'Value') == 0 && get(handles.radiobutton10,'Value') == 0)) errordlg('No option selected','File Error'); %user did not select any radio button, then do this guidata(hObject, handles); end;
error ??? Operands to the and && operators must be convertible to logical scalar values.
0 Kommentare
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!