Operands to the || and && operators must be convertible to logical scalar values.

1 visualización (últimos 30 días)
I have such kind of simple code. But when I tried to include it in "if else" like below, this command: Operands to the || and && operators must be convertible to logical scalar values, just appears.
prompt1 = {'sth 1:' , 'sth 2:' };
title = 'Front Range';
dims = [1 50] ;
definput = {' ', ' '};
x1 = inputdlg(prompt1,title,dims,definput);
if ge(x1, 100) || lt(x1, 1)
return
else
prompt2 = {'sth 3:' , 'sth 4:' };
title2 = 'Post-Range';
dims2 = [1 50];
definput2 = {' ',''};
x2 = inputdlg(prompt1,title2,dims2,definput2);
end
  1 comentario
Rik
Rik el 23 de Dic. de 2018
With the debugger enabled, you can try to evaluate the parts of that statement. Both parts should be a logical scalar. Apparently that is currently not the case.

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 23 de Dic. de 2018
inputdlg() returns a cell array of character vectors. You need to use str2double(x1) to convert to numeric form. Watch out for nan, which will be returned for empty values or for values that are not valid single numbers.

Más respuestas (1)

Image Analyst
Image Analyst el 24 de Dic. de 2018
Try this:
ca = inputdlg(prompt1, 'Front Range', dims, definput);
% ca is a cell array.
sth1 = str2double(ca{1})
sth2 = str2double(ca{2})
if sth1 < 1 || sth1 > 100 || sth2 < 1 || sth2 > 100
return;
else........
Don't use title as the name of your variable because that is the name of a built-in function.

Categorías

Más información sobre Random Number Generation en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by