I have a cell (NewCell {1,1}) with 1 column and many rows, each row has or '0' or []. If its '0', I want to make a comparison; if its the other thing, i want a 'V'.
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
teste2 = cell(size(catconsumo));
for k=2:(length(Preos2013S1)-1)
if NewCell{1,1}{k} == '0'
mask = strcmp(catracio1, 'low') & strcmp(catpreco, 'high');
teste2(mask) = {'A'};
mask = strcmp(catracio1, 'medium low') & strcmp(catpreco, 'medium high');
teste2(mask) = {'B'};
mask = strcmp(catracio1, 'medium') & strcmp(catpreco, 'medium');
teste2(mask) = {'C'};
mask = strcmp(catracio1, 'medium high') & strcmp(catpreco, 'medium low');
teste2(mask) = {'D'};
mask = strcmp(catracio1, 'high') & strcmp(catpreco, 'low');
teste2(mask) = {'E'};
elseif NewCell{1,1}{k} ~= '0'
teste2{k}='V';
end
end
However, teste2 results with [] in every row, or one of those letters, but regardless of there is a [] or a '0' in NewCell{1,1}. Its not respecting the 'if' condition. Can somebody help me please?
1 comentario
bemin
el 8 de Nov. de 2016
You need to give little more details about your cell, However What I see from your code that you are trying to compare number with a string so you ether use strcmp () or write the if without quotations just like this:-
if NewCell{1,1}{k} == 0
...
...
..
etc.
I hope I can help
Respuestas (1)
James Tursa
el 8 de Nov. de 2016
Editada: James Tursa
el 8 de Nov. de 2016
elseif isempty(NewCell{1,1}{k})
The problem you are having is that the result of NewCell{1,1}{k} ~= '0' is empty in that branch, not true, so you don't get into the elseif block.
Or, if you know for sure that there are only '0' and [] in NewCell{1,1}{k}, you could just turn that entire elseif statement into an else. E.g.,
else
teste2{k}='V';
1 comentario
Ver también
Categorías
Más información sobre Data Type Identification 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!