2016-04-03 19 views
0

Ich habe Schwierigkeiten zu überprüfen, ob alle Zellenwerte Null sind. Ich habe mich umgesehen und kann nichts finden, was der Array-Version entspricht.Wie überprüft man, ob alle Zellenwerte gleich 0 sind

Mein Code:

handles.CheckFinger = cell(1,5); 
handles.CheckFinger = [0 0 0 0 0]; 

if all(handles.CheckFinger == 0) 
    msgbox('No fingers selected for recording.') 
end 

Mein Fehler:

Undefined operator '==' for input arguments of type 'cell' 
+0

FYI, Ihr genauer Code in Oktave arbeitet. Wie wäre es '! Any (handles.CheckFinger)'? –

+0

Matlab mag das nicht und zeigt ungültige Matlab-Syntax für Ihren Vorschlag an. – IamTrent

+0

Ok, sorry, keine Vorschläge dann, scheint Oktave Zellen anders als Matlab behandelt, und ich habe nur Oktave auf ATM zu testen. –

Antwort

1

Zum einen funktioniert es für mich, wie es steht.

jedoch: Sie müssen die Zellen adressieren, nicht das Array selbst

if all(handles.CheckFinger(:) == 0) 
    msgbox('No fingers selected for recording.') 
end 

Oder in diesem Fall einfach

if handles.CheckFinger(:) == 0 
    msgbox('No fingers selected for recording.') 
end 
+0

Danke, das ist viel einfacher als meine Arbeit herum. – IamTrent

+1

@IamTrent Froh, dass es geholfen hat :). Beachten Sie auch die Unterschiede zwischen 'cell (:)' und 'cell {:}'. Wenn Sie CellArray verwenden möchten (was natürlich sehr nützlich ist), sollten Sie die Dokumentation und ein paar Beispiele durchgehen, um sich mit dem Gebrauch von '(:)' und wenn '{:}' vertraut zu machen. – zdim

1

Ich bin nicht sicher, warum es für andere zu arbeiten und mich nicht, aber ich schaffte es um eine Arbeit zu produzieren.

Ich benutze Matlab 2016a, nicht sicher, ob das etwas damit zu tun hat.

Verwandte Themen