Operands to the || and && operators must be convertible to logical scalar values.
조회 수: 17 (최근 30일)
이전 댓글 표시
So I don't understand the reason why I am getting the following error:
riskUserId=[];
if (data.A>5) || (data.B==1)
C=data.D;
end
data is a table
A is of type double
B is of type logical (0s and 1s)
I am still getting used to this table logic and cell content type of data.
댓글 수: 2
Geoff Hayes
2022년 5월 5일
data.Age>60
? Should there be one age greater than 60 or all ages greater than 60?
답변 (2개)
Mitch Lautigar
2022년 5월 5일
riskUserId=[];
%MATLAB is expecting a 1 or 0 for preexisting conditions. IF the values in the table are true/false, use strcmpi(). This would look like (strcmpi(data.Preexisting_Conditions,"true"))
if (data.Age>60) || (data.Preexisting_Conditions==1)
riskUserId= [riskUserId;data.User_ID]; %Stack all values into an array for easy viewing.
end
Cris LaPierre
2022년 5월 5일
편집: Cris LaPierre
2022년 5월 5일
Use || and && when you are comparing a single (scalar) value. Use | and & when you are comparing arrays (when there is more than 1 output of the comparison).
a = 1:4;
b = 4:-1:1;
% Works
c = a>2 & b<=3
% Error you are seeing
d = a>2 && b<=3
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!