|
Lopikalurst |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 03.12.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 03.12.2009, 19:39
Titel: Matrix unterteilen
|
 |
ich möchte eine funktion schreiben die eine matrix in nummerierte submatritzen aufteilt. also z.b.
A =
1 7
2 8
3 9
4 10
5 11
6 12
drei teile
B1 =
1 7
2 8
B2 =
3 9
4 10
B3 =
5 11
6 12
das problem ist dass ich nicht draufkomme wie ich die variablennamen richtig zuweise. d.h. dass ich eine funktion (ich nenne sie mal partition) habe die mir mit der eingabe [B]=partition(A,3) das oben genannte ergebnis liefert
bis jetzt sieht das ganze so aus:
function [namedervariable]=partition(X,n)
% X - Matrix
% n - Anzahl Segmente
% Länge der Segmente bestimmen
ls=floor(size(X,1)/n);
% Zählvariable initiieren
z=0;
for i=1:n
namedervariabe_i=X((z+1) z+ls),1:size(X,2)));
z=z+ls;
end
ich weiß nur leider nicht wie ich matlab dazu bringen soll den namen der variable zu nehmen und daraus dann durchnummerierte variablen in den workspace rauzugeben also z.b. bei variablenname A und n segmenten --> A1, A2, ... An
|
|
|
|
|
Jan* |

Forum-Century
|
 |
Beiträge: 178
|
 |
|
 |
Anmeldedatum: 06.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2007b
|
 |
|
|
 |
|
Verfasst am: 04.12.2009, 10:46
Titel:
|
 |
Der Befehl den du suchst lautet eval. Damit kannst du Befehle ausführen, die in Strings stehen. D.h. du musst die Nummer deiner neuen Variable per int2str in einen String wandeln, und dir dann entsprechend den Zuweisungsbefehl in einen String schreiben und per eval ausführen.
|
|
|
Lopikalurst |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 03.12.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 06.12.2009, 13:37
Titel:
|
 |
hmm irgendwie bekomm ich das nicht hin
die funktion läuft zwar und zeigt im command window auch brav an dass variablen erstellt werden, das problem ist dass im workspace nix gespeichert wird...
funktion:
befehl + ergebins:
sieht wunderbar aus, nur dass eben nix gespeichert wird, was irgendwie am zweck vorbeigeht
habs dann mal mit assign probiert, aber das läuft nicht
funktion:
befehl + ergebnis:
|
|
|
Lopikalurst |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 03.12.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 06.12.2009, 17:52
Titel:
|
 |
ok, problem gelöst, evtl. nicht elegant aber es geht
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|