2017-04-02 14 views
0

Ich versuche, die Matrix auf eine CSV-Datei (durch Komma getrennt) mit dieser Funktion csvwrite('myMatrix.dat',L); (wobei L quadratische Matrix) Ich habe diesen Fehler zur Ausgabe in Datei:Ausgabe als Matrix Schreiben mit csvwrite

>> csvwrite('myMatrix.dat',L); 
Error using sprintf 
Function is not defined for sparse inputs. 

Error in dlmwrite (line 169) 
     str = sprintf(format,m(i,:)); 

Error in csvwrite (line 42) 
dlmwrite(filename, m, ',', r, c); 

Bitte, was ist falsch daran?

Antwort

0

Der Fehler, den Sie sehen, ist ein Problem mit Ihren Eingaben (Argumenten). Es sagt Ihnen, dass der Dateiname ein "Zeichenvektor" sein muss.

Eine schnelle Google auf "Matlab Charakter Vektoren" gab mir dies: http://mathworks.com/help/matlab/matlab_prog/creating-character-arrays.html#briuv_1-1

Eine Google auf "Matlab csvwrite" Gib mir dies: http://mathworks.com/help/matlab/ref/csvwrite.html?requestedDomain=www.mathworks.com

wahrsten Sinne des Wortes die ersten Ergebnisse, die in Google kommen. ..

Versuchen Sie zumindest zu vergleichen, was Sie zu den Beispielen zur Verfügung gestellt haben.

+0

Vielen Dank für Ihre Antwort. Tatsächlich habe ich versucht, den Zeichenvektor als Dateinamen zu verwenden, wie der Fehler angibt, aber es scheint das Problem nicht zu beheben. Ich habe meinen Beitrag mit der Fehlermeldung geändert. – Kris

+0

Versuchen Sie zu überprüfen, was in 'L' ist. 'whos ('L')' würde Ihnen auch helfen, mehr Informationen darüber zu bekommen. Ich musste nie csvwrite in einer inkonsistenten Zelle oder Objekt-Array verwenden, so dass ich mit diesen Fällen keine Ahnung hätte. Eine einfache Möglichkeit, um zu sehen, was sich in Ihren Variablen befindet, ist ein Doppelklick auf den Arbeitsbereich. Eine andere Möglichkeit besteht darin, einen Unterbrechungspunkt beim Aufruf von 'csvwrite' innerhalb eines Skripts zu erstellen, dann den Debugger zu verwenden und' L' aufzurufen, sobald Sie wissen, dass er in den Speicher geladen wurde. Wenn Sie immer noch nicht wissen, was vor sich geht, dann versuchen Sie, Zeile für Zeile einzutauchen, es wäre auch eine gute Zeit für Sie, Ihre Fähigkeiten zum Debuggen zu verbessern. – ToninGuy3n