Ich verwende diesen Code, um die eingegebene Zeichenfolge durch Textfeld, das Text wie folgt enthalten (1,1,1,3,4,7,9,9, 9) und dann geteilt ich es hängt davon ab, jede Zahl in Array zu speichern, wie das Ergebnis in Matlab, aber das Problem, als ich bin mit str2double für Temp-I-Fehler geben, ich glaube, ich bin mit ihm an der falschen StelleSpeichern Zeichenfolge nach dem Splitten als Anzahl in Array in Matlab
Code:
points = get(handles.pointstxt,'String');
tmp = regexp(points,'([^ ,:]*)','tokens');
tmp
notesvector = cat(2,tmp{:})
Das Ergebnis wird wie folgt dargestellt:
ein lauffähiges Beispiel nennen und angeben, was die Fehlermeldung in voll ist. Wo wird 'str2double' verwendet? Ist "Punkte" nur die Saite "1,1,1,3,4,7,9,9,9"? Sie können 'textscan' verwenden, um die Zeichenfolge direkt in Doppel zu konvertieren. – horchler
Ich möchte nicht textscan verwenden, weil es mir das Ergebnis gibt als eine Zelle nicht wie Array jede Zahl in einer Zelle, über die Verwendung von str2double Ich habe es hier verwendet: notesvector = cat (2, str2double (tmp {:})) aber es ist falsch, weil es nicht alle Daten gleichzeitig konvertieren kann! –
Was ist falsch an einem Zellenfeld? Wenn Sie es in ein Array konvertieren möchten, verwenden Sie einfach 'double_array = [double_cell_array {:}];'. Wenn Sie 'str2double' verwenden wollen, übergeben Sie ihm ein Zellenfeld:' str2double (tmp) '. – horchler