Forum: PC Hard- und Software MATLAB Matrix speichern


von Stefan (Gast)


Lesenswert?

Hallo
ich hab ein kleinen Problem mit Matlab.
Ich will mir ein 16bit langen Testvectorsatz mit Matlab generieren und 
in eine .TXT datei speichern.
die Testvektoren kann ich generieren das ist nich weiter schlimm, aber 
wenn ich meinen Matrix speichern will kann ich das nur bis zu eien 16x16 
Matrix.

wie kann ich eine Matrix mit 1024x16 speichern

hier ist mein Quellcode:

fid = fopen('Test123.txt','w');
for a=1:ende
    fprintf(fid,'[')
    for b=1:length(TestVector)
    if b==16
        fprintf(fid,'%d]->[',TestVector(a,b))
    else
        fprintf(fid,'%d,',TestVector(a,b));
    end
    end
fprintf(fid,']\n');
end
fclose(fid);
type Test123.txt

von Johannes M. (johnny-m)


Lesenswert?

So was macht man nicht mit fprintf! Schau Dir bitte mal den 
MATLAB-Befehl save an. Da kannste Dir auch den ganzen Quatsch mit 
fopen usw. sparen (*). Wenn Du C(++) programmieren willst, dann solltest 
Du besser nicht MATLAB benutzen;-) (auch wenn MATLAB einige (manchmal 
recht nützliche) Funktionen aus dem C-Schatz intus hat).

z.B.:
1
save 'C:\Eigene Dateien\testvector123.txt' testvector -ascii -tabs;
speichert eine MATLAB-Variable testvector als Tab-getrennte 
ASCII-Zeichen in der Datei "testvector123.txt". Und wenn in testvector 
eine n*m-Matrix steht, dann wird diese auch unabhängig von ihren 
Dimensionen korrekt ausgegeben.

(*) Vorausgesetzt natürlich, es geht nicht um eine bereits bestehende 
Datei.

von Stefan (Gast)


Lesenswert?

Danke ich hab meinen Fehler gefunden
ich hab es zwar immer noch mit der ANSI C Lösung aber es geht

von Johannes M. (johnny-m)


Lesenswert?

Stefan wrote:
> Danke ich hab meinen Fehler gefunden
Aha, und der wäre?

> ich hab es zwar immer noch mit der ANSI C Lösung aber es geht
Tja, wenn Du nicht willst... Warum einfach, wenn's auch kompliziert 
geht?

von Stefan (Gast)


Lesenswert?

Der Fehler war in den forschleifen
die schleife a soll mir die zeilen zählen also 1024
und die scleife b soll die Spaöten zählen also 16
aber der befehl length(TestVector)ibt mir auch 1024 zurück.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.