1

Ich versuche, Strings zu verketten, wenn ich sie so getrennt verketten:Strings verketten, während mit Figur Befehl (MATLAB)

strcat({'Plot of f with a plot of iterates for c='},{int2str(c)}) 

kein Fehler kommt.

Aber wenn ich versuche, sie in Figur Befehl wie folgt zu verwenden:

figure('Name',strcat({'Plot of f with a plot of iterates for c='},{int2str(c)})) 

erhalte ich diesen Fehler:

Error using figure 
Value must be a string 

Gibt es Gründe dafür?

+4

Sie müssen sich Ihrer Datentypen bewusst sein. Die Ausgabe von 'strcat' ist eine Zelle, weil Sie Zellen übergeben. Eine Zelle ist keine Zeichenfolge. Es gibt keinen Grund, Zellen an "strcat" zu übergeben. – excaza

+1

Wie @excaza sagte. Es gibt auch keine Notwendigkeit für "strcat", Sie können die Verkettung implizit verwenden: 'str = ['Plot von f mit einem Plot von Iteraten für c =', int2str (c)]'. –

Antwort

2

wie von @Matthias W. hingewiesen, die Ausgabe von strcat({'Plot of f with a plot of iterates for c='},{int2str(c)}) ist ein 1x1 cell, kein String wie erwartet von figure() Funktion.

Versuchen Sie, die folgenden

figure('Name',['Plot of f with a plot of iterates for c=', int2str(c)])

1

mit [] s für String-Verkettung eine große kurze Lösung ist. Da Sie bereits die Umwandlung zu tun, könnten Sie auch sprintf Lernen berücksichtigen:

figure('Name', sprintf('Plot of f with a plot of iterates for c = %d.\n', c)); 

Diese Overkill in diesem Beispiel sein könnte, aber kann es wert sein, wenn Sie eine Anzahl von Werten ausdrucken müssen, oder mehr wollen Kontrolle darüber, wie die Zahlen angezeigt werden.