The lines inside my while-loop are never executed
Información
La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.
Mostrar comentarios más antiguos
function lagre(filename)
res = 1;
fid = fopen(filename,'w');
while (res ~= [])
res = input('Type in text that you want to save, and press Enter. Leave a blank space and press Enter to quit.');
fprintf(fid, '%s \n', res);
end
fclose(fid);
end
The lines inside this while-loop are never executed, and I don't understand why. 1 is certainly unequal to nothing, right?
Respuestas (1)
dpb
el 2 de Dic. de 2014
...1 is certainly unequal to nothing, right?
Yabbut... :)
The ~= comparison fails because the two results are incompatible in type/class.
Use
while ~isempty(res)
instead.
1 comentario
Guillaume
el 2 de Dic. de 2014
To add to that, matlab has many different ways to arrive at the empty set, none of which it considers equal with isequal. With == you have the additional problem that these empty have different sizes (sic!)
a = 1;
a(1) = []; % a is now empty
isequal(a, []) %return false!
isequal(a, double.empty(0,1)) %return false!
a == [] %error dimension not equal
Always use isempty to test for emptiness.
La pregunta está cerrada.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!