gnovice Antwort ist die einfachste Lösung für dieses Problem spezifisches Problem, aber im Allgemeinen, wenn Sie ein Zellenarray in ein numerisches umwandeln möchten, indem Sie irgendeine Umwandlung auf jedes Element anwenden, können Sie so unter Verwendung cellfun
tun. Zum Beispiel, wenn Sie fragen MATLAB für length({'apple' 'orange' 'banana'})
Sie 3
bekommen, aber wenn Sie die Länge der einzelnen Strings im Array möchten, können Sie tun:
>> cellfun(@length, {'apple' 'orange' 'banana'})
ans =
5 6 6
Sie können eine anonyme Funktion verwenden, oder einen Handgriff zu einer Funktion dass Sie definiert haben, als das Argument cellfun
, so kann die Transformation so komplex sein, wie Sie brauchen. Solange das Ergebnis Ihrer Funktion ein numerischer oder logischer Skalarwert ist, ist die Ausgabe von cellfun
ein numerisches oder logisches Array. andernfalls wird es ein anderes Zellenfeld sein (und wenn es in der Größe variiert, müssen Sie das 'UniformOutput', false
Argumentpaar verwenden)