matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Hochschulmathe
  Status Uni-Analysis
    Status Reelle Analysis
    Status UKomplx
    Status Uni-Kompl. Analysis
    Status Differentialgl.
    Status Maß/Integrat-Theorie
    Status Funktionalanalysis
    Status Transformationen
    Status UAnaSon
  Status Uni-Lin. Algebra
    Status Abbildungen
    Status ULinAGS
    Status Matrizen
    Status Determinanten
    Status Eigenwerte
    Status Skalarprodukte
    Status Moduln/Vektorraum
    Status Sonstiges
  Status Algebra+Zahlentheo.
    Status Algebra
    Status Zahlentheorie
  Status Diskrete Mathematik
    Status Diskrete Optimierung
    Status Graphentheorie
    Status Operations Research
    Status Relationen
  Status Fachdidaktik
  Status Finanz+Versicherung
    Status Uni-Finanzmathematik
    Status Uni-Versicherungsmat
  Status Logik+Mengenlehre
    Status Logik
    Status Mengenlehre
  Status Numerik
    Status Lin. Gleich.-systeme
    Status Nichtlineare Gleich.
    Status Interpol.+Approx.
    Status Integr.+Differenz.
    Status Eigenwertprobleme
    Status DGL
  Status Uni-Stochastik
    Status Kombinatorik
    Status math. Statistik
    Status Statistik (Anwend.)
    Status stoch. Analysis
    Status stoch. Prozesse
    Status Wahrscheinlichkeitstheorie
  Status Topologie+Geometrie
  Status Uni-Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenMatlabDaten in Matrix aufreihen
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Geschichte • Erdkunde • Sozialwissenschaften • Politik/Wirtschaft
Forum "Matlab" - Daten in Matrix aufreihen
Daten in Matrix aufreihen < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Daten in Matrix aufreihen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 11:16 Fr 25.09.2009
Autor: LN-

Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt: http://www.gomatlab.de/viewtopic,p,29982.html#29982

Hallo,

ich bin ziemlicher Matlab Neuling und bisher konnte ich jedes Problem mit Googel etc lösen. Nur dieses lässt mir einfach keine Ruhe.

Hier der Code:

A=fem.sol.u;
B=fem.sol.tlist;
C=fem.mesh.p;
D=1.58e-11;    
[mc,nc]= size(C');
[ma,na]=size(A);
A(mc+1:ma,:)=[];
A(:,na+1)=C';
E=sortrows(A,na+1); %sortieren nach na+1
[me,ne]=size(E);
Tabelle=B;
Tabelle(2:me+1,ne-1)=0; %Nullen setzen
[mt,nt]=size(Tabelle);
hx=E(:,ne);
for f=E(:,1:ne-1)  
    n=1:ne-1
    grad=gradient(f,hx)
    Tabelle(2:mt,n)=grad;
end

Ich habe Daten aus Femlab exportiert, daraus Matrizen erstellt, gekürzt, zusammengefügt und nach der letzten Spalte sortiert.
Dann wird eine Tabelle erstellt, die erste Zeile ist durch B definiert und der Rest wird mit Nullen aufgefüllt, damit ich später etwas einfügen kann.
Dann wird hx definiert als die letzte Spalte von E
und nun kommt mein Problem: ich brauche eine Schleife, welche von der 1. bis zur vorletzten Spalte von E jeweils die Spalte nimmt und dann den gradienten abhängig von hx berechnet (mit einzel extrahierten Spalten funktioniert es, ich brauch es aber der Reihe nach für alle Spalten.)
Das klappt auch soweit noch, dann soll er es aber in "Tabelle" schreiben und zwar beginnend in der 2. Zeile und jeweils eine weiter nach rechts. Deswegen habe ich n=1:ne-1 gesetzt. Allerdings funktioniert dies nicht. Kann mir hier jemand helfen, wie ich die Werte nacheinander eingereiht bekomme? Ich habe bereits versucht eine zweite Schleife in die erste zu integrieren, dann schreibt er aber nur den jeweils letzten berechneten Gradienten in alle Spalten.

        
Bezug
Daten in Matrix aufreihen: Antwort
Status: (Antwort) fertig Status 
Datum: 11:47 Fr 25.09.2009
Autor: Frasier


> ...dann soll er es aber in
> "Tabelle" schreiben und zwar beginnend in der 2. Zeile und
> jeweils eine weiter nach rechts. Deswegen habe ich n=1:ne-1
> gesetzt. Allerdings funktioniert dies nicht. Kann mir hier
> jemand helfen, wie ich die Werte nacheinander eingereiht
> bekomme? Ich habe bereits versucht eine zweite Schleife in
> die erste zu integrieren, dann schreibt er aber nur den
> jeweils letzten berechneten Gradienten in alle Spalten.  

Hallo,
kannst du mal ein konkretes Beispiel geben, wie das aussieht/aussehen soll?
lg
F.

Bezug
                
Bezug
Daten in Matrix aufreihen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 12:49 Fr 25.09.2009
Autor: LN-

Hallo,

Danke für die Reaktion!

das soll so aussehen:
1. Zeile die Werte aus B, da stehen in dem Fall Zahlen von 0-250 drin und dann kommen hier 16 weitere Zeilen, in welche pro Spalte (welche von 1-n gezählt wird) der 16 zeilige grad-Vektor (hier als gradf eingegeben, wobei die Werte pro Zeile natürlich unterschiedlich sind) eingetragen werden soll
also:
[mm] \begin{matrix} 0 & 1 & 2 &3 &4 & 5 & 6 & 7 & ...\\ gradf1 & gradf2 & gradf3 & gradf4 & gradf5 & gradf6 & gradf7 & gradf8 & ...\\ gradf1 & gradf2 & gradf3 & gradf4 & gradf5 & gradf6 & gradf7 & gradf8 & ...\\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & ...\\ \end{matrix} [/mm]


Die Sache funktionert wenn ich eine zweite Schleife einbaue:

for f=E(:,1:ne-1)
    for n=1:ne-1
        grad=gradient(f,hx);
        Tabelle(2:mt,n)=grad;
    end
end

und dann wird halt überall die letzte Lösung von grad eingefügt. Ich will aber eben immer das zu f gehörende Ergebnis von der jeweilgen Spalte aus E fortlaufend eingetragen haben.

Ich hoffe das war so verständlich.
Vielen Dank,
Gruß Ellen


Bezug
                        
Bezug
Daten in Matrix aufreihen: Antwort
Status: (Antwort) fertig Status 
Datum: 19:41 Fr 25.09.2009
Autor: Frasier

Hallo,
ehrlich gesagt verstehe ich das nicht...
Kannst du mal einen Code schreiben, den ich ausführen kann?
Z.B. sowas:

E=rand(11);
B=0:11;
ne=12;
mt=12;
hx=0.1;
Tabelle(1,:)=B;
for f=E(:,1:ne-1)
    for n=1:ne-1
        grad=gradient(f,hx);
        Tabelle(2:mt,n)=grad;
    end
end

lg
F.

Bezug
                                
Bezug
Daten in Matrix aufreihen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 09:12 Mo 28.09.2009
Autor: LN-

Hallo,

Ah klar, ich verstehe, du hast natürlich meine Simulationsdaten nicht...
Hier kommt der Code verallgemeinert:


B=(0:19);
E=rand(16,20);
[ma,na]=size(E)
C=(1:16)
E(1:16,na+1)=(C')
[me,ne]=size(E);
Tabelle=B;
Tabelle(2:me+1,ne-1)=0;
[mt,nt]=size(Tabelle);
hx=E(:,ne);
for f=E(:,1:ne-1)
   n=1:ne-1
   grad=gradient(f,hx);
   Tabelle(2:mt,n)=grad;
end


ich hoffe, jetzt ist es ersichtlicher! Vielen Dank für die Hilfe!
mfg Ellen

Bezug
                                        
Bezug
Daten in Matrix aufreihen: Antwort
Status: (Antwort) fertig Status 
Datum: 10:12 Mo 28.09.2009
Autor: Frasier

Hey, diese Code läuft aber nicht.
grad ist 16x1, n aber 1x20 groß, das passt nicht.

Hattest du es nicht schon mit 2 Schleifen?
B=(0:19);
E=rand(16,20);
[ma,na]=size(E);
C=(1:16);
E(1:16,na+1)=(C');
[me,ne]=size(E);
Tabelle=B;
Tabelle(2:me+1,ne-1)=0;
[mt,nt]=size(Tabelle);
hx=E(:,ne);
for f=E(:,1:ne-1)
    for n=1:ne-1
        grad=gradient(f,hx);
        Tabelle(2:mt,n)=grad;
    end
end

lg
F.

Bezug
                                                
Bezug
Daten in Matrix aufreihen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 10:31 Mo 28.09.2009
Autor: LN-

Hallo,

ja, n soll nur die Spalten zählen, es soll angefangen in Spalte 1 bis in diesem Beispiel Spalte 19 (in 20 steht nur der Abstandsparameter) jeweils eine Spalte weiter grad mit 16x1 eingefügt werden. Und zwar begonnen in der 2. Zeile, weil in der ersten ja bereits die Daten aus B stehen.
n soll keine Matrix sein, sondern nur angeben, dass in Spalte 1 bis eben in Spalte 19 jeweils nacheinander Einträge erfolgen sollen.
Ich habe es auch mit 2 Schleifen schon versucht, allerdings trägt er mir dann nur das zuletzt berechnete Ergebnis für grad in alle Spalten ein und ich möchte ja in jeder Spalte ein anderes Ergebnis stehen haben, nämlich das, das zu der jeweiligen Spalte in E gehört.
Irgendwie klappt es nicht, dass jeweils eine Spalte weitergesprungen wird. :-/ gibt es dafür evt. einen anderen Befehl?
Danke für die Hilfe, das ist echt super, ich steh voll auf dem Schlauch...

Gruß Ellen

Bezug
                                                        
Bezug
Daten in Matrix aufreihen: Antwort
Status: (Antwort) fertig Status 
Datum: 10:57 Mo 28.09.2009
Autor: Frasier

Ah, ich glaube ich verstehe.
Kannst du aus dem n nicht einfach einen Spaltenzähler machen:

B=(0:19);
E=rand(16,20);
[ma,na]=size(E);
C=(1:16);
E(1:16,na+1)=(C');
[me,ne]=size(E);
Tabelle=B;
Tabelle(2:me+1,ne-1)=0;
[mt,nt]=size(Tabelle);
hx=E(:,ne);
n=1;
for f=E(:,1:ne-1)
    grad=gradient(f,hx);
    Tabelle(2:mt,n)=grad;
    n=n+1;
end

lg
F.

Bezug
                                                                
Bezug
Daten in Matrix aufreihen: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:24 Mo 28.09.2009
Autor: LN-

Hallo,

Wow, cool! Das klappt! Da war ich wohl einfach auf der falschen Fährte, ich dachte, ich muss das Ende von n definieren, aber ich glaube, dadurch dass das Ende von f schon definiert ist, ist auch das Ende von n gegeben...

Vielen, vielen Dank! Jetzt kann ich endlich weitermachen...

Gruß Ellen

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.unimatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]