if statement find criteria not doing what I want it to do
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Sara Ismail-Sutton
le 25 Nov 2020
Réponse apportée : madhan ravi
le 25 Nov 2020
if k does not contain 1 matlab returns ' 1×0 empty double row vector ' so i dont understand why this is not working in my if statement, where I have wrote ' 1×0 empty double row vector' as 'zeros(1,0)'
if k does contain 1 it returns scalar 1
function[out]=neqchek(k)
c=find(k==1)
if c~=zeros(1,0)
k(1)=10
out=k
end
end
0 commentaires
Réponse acceptée
David Hill
le 25 Nov 2020
function[out]=neqchek(k)
c=find(k==1)
if ~isempty(c)
k(1)=10
out=k
end
end
2 commentaires
the cyclist
le 25 Nov 2020
Modifié(e) : the cyclist
le 25 Nov 2020
The reason your code doesn't work is that checking "equality" between two empty arrays does not return a simple true value. This is why your if statement doesn't behave as you expect.
Try something as simple as
[] == []
to see what I mean.
Plus de réponses (1)
madhan ravi
le 25 Nov 2020
neqchek = @(k) subsasgn(k, substruct('()', {k(1) == 1}), 10);
out = neqchek([1 : 2, 1])
0 commentaires
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!