2017-05-28 4 views
0

im nach der Verwendung versuchen, ein Skript zu machen der Lage sein, einen Vektor von Zahlen und mathematische Symbole berechnen würde zu einer einzigen Zeichenfolge zu konvertieren zurückeval nicht funktioniert horzcat Matlab

im mit Funktion eval() und Beispiel sein

str = '4*2' 
eval(str) 

und das Ergebnis wäre

ans = 

8 

sein, aber wenn ich in einen Vektor erstellen und zurück konvertieren das Ergebnis mit horzcat wird nicht funktionieren.

Number = [52 42 50] 
Number1 = (mat2str(char(Number))) 
str = horzcat(Number1) 
eval(str) 

und ich würde bekommen

ans = 

4*2 

kann mir jemand helfen, das Problem mit dem Script zu finden?

+1

Warum benutzen Sie 'eval' überhaupt? Das ist eine sehr schlechte Übung! – EBH

Antwort

1

Ihr Problem ist mit dem mat2str Befehl. Das ist unbegreiflich. Der Befehl char gibt bereits eine Zeichenfolge zurück. Sie erhalten eine Zeichenfolge in einer Zeichenfolge. Wenn Sie also in Ihrem Code eval eingeben, wird nur die innere Zeichenfolge angezeigt.

+0

Vielen Dank, ich habe versucht, das mathematische Symbol randomisieren, aber konnte nicht herausfinden, wie Sie es zurück in die Zeichenfolge konvertieren und berechnen. Ich dachte, 'char' habe noch keine string zurückgegeben, und prob hat 'mat2str' hinzugefügt. – TIMAE

0

Zuerst - Sie sollten nicht eval verwenden!

Zweitens, gibt es keine Notwendigkeit in horzcat und mat2str in Ihrem Code. Schreiben Sie einfach:

str = char(Number) 
Verwandte Themen