WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Matrizen zerlegen

 

kramka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2012, 12:17     Titel: Matrizen zerlegen
  Antworten mit Zitat      
Hallo,


ich habe hier eine ( zumidest für mich) etwas kompliziertere Programmieraufage für Matlab und stehe irgendwie seit 2 Tagen auf der Stelle.

Es geht darum, aus einer Matrix mit 26*84096 Daten ( A(26,84096) ) immer zwei Zeilen in eine neue Matrix zu stecken und dann dort die NaN Werte zu eliminieren. Dies soll für jedes Zeilenpaar A(i,j) passieren.
Also A(1,1) , A(1,2) , .A(1,3), .... A(26,26).
Aus jeder dieser neuen Matrix berechne ich dann die euklidische Distanz und packe diese dann in eine neue Matrix.

( Also im Prinzip eine Clusteranalyse, nur halt für jedes Paar einzeln, da die einzelnen Zeilen zu viele NaN Werte haben )


Leider scheitere ich im Moment noch beim 1. Schritt.
Meine einzige Idee war es bis jetzt eine Doppelschleife zu bauen
etwa derart:

Code:

variable = zeros(2,84096);

for i = 1:26
    for j = 1:26
       
variable(1,:) = tmat(i,:);
variable(2,:) = tmat(j,:);
variable(:,any(isnan(variable))) = [];

dist = pdist(variable);
dist_rms = dist./sqrt(length(variable));

matri(i,j) = dist_rms;

    end
end
 


leider bekomme ich dann immer den Fehler:

??? Subscripted assignment dimension mismatch.

Error in ==> (Name)
variable(1,: ) = tmat(i,: );


Ich kenne mich leider nicht so gut in Matlab aus. Nach ein bischen Googlen habe ich zwar verstanden was die Fehlermeldung besagt, aber auf mein Problem angewendet versteh ich sie nicht.


Daher hätte ich zwei Fragen:
Warum erscheint diese Fehlermeldung bei mir?
Wie kann ich diese umgehen?


Ich hoffe Ihr könnt mir helfen

Mit freundlichen Grüßen

Kramka


kramka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2012, 13:35     Titel:
  Antworten mit Zitat      
Ok hab es hinbekommen.

Allerdings ziemlich umständlich. Wenn jemand eine einfachere Lösung ohne Schleife parat hat, währe ich sehr danbar.

Auch für den weiteren Verlauf der Aufgabe bin ich nicht wirklich mit meiner Lösungsidee zufrieden.

Bei der Distanzmatrix angekommen suche ich mir jetzt das Zeilenpaar mit der niedrigsten Distanz aus und bilde hiermit das nanmean. also hab ich statt 26 verschiedenen Zeilen nurnoch 25, wobei eine halt einen Mittelwert enthält.
Nun geht das ganze von Vorne los. Solange bis ich genügend NaN Werte eliminiert habe um eine sinnvolle Clusteranalyse zu machen.

Mit Schleifen, so wie ich die erste minimale Distanz bekommen hab würde der Code ja explodieren und wohl meinen Rechner überfordern -.-


Hoffentlich hat jemand eine Idee, wie man das besser Programmieren kann.

Lg
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.