How to test for a 1 x 0 cell array?

29 visualizaciones (últimos 30 días)
Gian Carpinelli
Gian Carpinelli el 24 de Abr. de 2018
Editada: Stephen23 el 24 de Abr. de 2018
Essentially what the question/ title is. Ive got a database and the user can add information into p where p is P = cell(1,1). The user can also delete information from this. at the moment ive got: if isempty(P{1,1})==1
fprintf('The library currently has no books. \n');
.... rest of code....
this only works if there are no books in the function originally, not for if the user has created books then deleted all, as this results with " a 1 x 0 empty cell array" ... how can I test for this?
thanks
  1 comentario
Stephen23
Stephen23 el 24 de Abr. de 2018
Editada: Stephen23 el 24 de Abr. de 2018

What is the purpose of the == here?:

isempty(...)==1

isempty returns a scalar logical, and that == operation returns an exactly identical scalar logical. What is the point of that? Which textbook is teaching so many beginners to use this pointless code?

Iniciar sesión para comentar.

Respuestas (1)

Guillaume
Guillaume el 24 de Abr. de 2018
A 1x0 cell array is an empty array. isempty will return true for that, so your test is valid.
>> c = cell(1, 0);
>> isempty(c)
ans =
logical
1
If at the moment, you're not detecting 1x0 cell array as empty is because you're not testing what you say you're testing or your cell array is not as you say. Either way, show us the actual code you're using and the exact content of the cell array.
Note that:
if isempty(p)
and
if isempty(p{1})
test two completely different things. The first one checks if the cell array is empty. The second one assumes the cell array is not empty and checks if whatever is in the first cell of the array is empty.
Note2: the == 1 in your if expression is pointless. the output of isempty(x) == 1 is exactly the same as the output of isempty(x).

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by