I haben die folgenden:Anzeige alle Elemente in einer verschachtelten Zellenarray (mit Zeicheneingaben)
a =
{1x1 cell} {1x1 cell} {1x1 cell} {1x1 cell}
wobei:
a{:}
ans =
'a'
ans =
'a'
ans =
'c'
ans =
'a'
I die Zeichen haben wollen: a a c a
Seit Ich brauche die zu druckenden Zeichen mit fprintf
fprintf
wird nicht akzeptieren a{:}
Wenn ich a{1}{:}
Sie ein
Wie beheben dies nur das erste Zeichen betrachten wird? Vielen Dank.
'@ (x)' ist die Syntax zum Erstellen einer anonymen Funktion. In diesem Fall ist es jedoch nicht notwendig, da '@ char 'ausreichend ist. Ich habe meine Antwort bearbeitet, um die Lösung ohne '@ (x)' - Syntax hinzuzufügen. Weitere Informationen zu anonymen Funktionen finden Sie in der MATLAB-Dokumentation zu anonymen Funktionen (http://www.mathworks.com/help/techdoc/matlab_prog/f4-70115.html). Anonyme Funktionen sind in manchen Fällen nützlich bei 'cellfun' und' arrayfun'. – nrz
danke. @nrz Ich benutze ehrlich gesagt Fprintf zu speichern, um Text-Datei mit Ihrem Code ist es jetzt: fileID = fopen ('a.txt', 'at'); fprintf (Datei-ID, '% 2.8s \ n', cellfun (@ (x) char (x), a)); fclose (Datei-ID); – pac
Also, wenn Sie '@ (x)' -Syntax zusammen mit 'cellfun' verwenden, erhält' x' alle Werte des Zellen-Arrays nacheinander, also zuerst 'x' ist' {'a'} ', dann' x' ist wieder '{'a'}', dann '{'c'}' ... und in diesem Fall wird 'char' auf alle diese Werte angewendet, die' x' erhält, wodurch ein Zeichenvektor daraus entsteht. – nrz