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

Ergebnismatritzen in Abhängigkeit von 2 Laufvariiablen

 

Hamsterbacke
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 20.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.10.2013, 23:48     Titel: Ergebnismatritzen in Abhängigkeit von 2 Laufvariiablen
  Antworten mit Zitat      
Hallo, vielleicht kann mir blutigen Anfängerin jemand helfen.
Ich habe drei for-Schleifen mit den Variiablen j,i und k und möchte,
dass für jedes i eine Ergebnismatrix erzeugt wird. In der für alle k in einer bestimmten Spalte
meine Ergebnisse stehen. Ich hab im Forum den assignin Befehl gefunden, aber damit weiß ich nicht wie
ich die Spalte, in die mein Ergebnis soll festlegen kann. Außerdem wird im Forum stark von EVAL, EVALIN
und ASSIGNIN abgeraten.Mein Versuchsfeld sieht im Moment so aus:
Code:
for k=1:2000
 
[a,b,c] = textread(Name)
Koor = load(Name)

m=length(Koor(:,1));
n=length(b(:,1));
for i=1:m
for j=1:(n-1)
  if  c(j,1)== Koor(i,1)  && d(j,1)== Koor(i,2)
      assignin ('base',['E_' num2str(i)], c(j,1)); %das Funktioniert, aber es fehlt noch dass es in E(k,1) stehen soll
      E(k,3) = c(j,1); %hier fehlt die Abhängigkeit zu i
   end
end
end
end
 


Über Hilfe würde ich mich sehr freuen, schonmal im voraus vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen


Kascho
Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 10.10.2013, 23:57     Titel:
  Antworten mit Zitat      
Abend Hamsterbacke,
so richtig kann ich noch nicht verstehen was du möchtest... assignin umgehen? Dann gib deiner Funktion einen Output mit den entsprechenden Variablen.
Ich vermute mal, dass ein cell Array abhängig von k hierbei helfen kann.

Gruß, Kascho
Private Nachricht senden Benutzer-Profile anzeigen
 
Hamsterbacke
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 20.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.10.2013, 00:41     Titel:
  Antworten mit Zitat      
Lieber ohne cell array, weil ich damit bisher auch nicht zurecht gekommen bin. Ich weiß nicht warum von assignin abgeraten wird. Wenn es nur um die Rechenzeit geht ist es mir egal.
Kann man denn mit assignin auch noch die Ergebnisse in bestimmte Spalten dieser Matritzen speichern? Also quasi E_i(k,1).
Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.10.2013, 01:39     Titel:
  Antworten mit Zitat      
Hallo Hamsterbacke,

Von ASSIGNIN wird abgeraten, weil es das Programmieren viel komplizierter macht, wie Du gerade selbst siehst. Mir wird nicht mal klar, was die Zeile überhaupt bewirken soll.

Vielleicht meinst Du "E(i, k, 3)"?
Ein Cell-Array ist weit einfacher als ein ASSIGNIN-Konstrukt, das nicht funktioniert. Das wäre dann z.B. "E{i}(k, 3)". Aber richtig sinnvoll erscheint mir das immer noch nicht.

Was möchtest Du denn als Eregbnis bekommen?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDread
Forum-Century

Forum-Century


Beiträge: 212
Anmeldedatum: 11.05.11
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 11.10.2013, 09:23     Titel:
  Antworten mit Zitat      
Hallo Hamsterbacke,

zu EVAL und ASSIGN:

wie willst du später auf "E_1" bis "E_m" zugreifen? Richtig, dafür benötigst du dann wieder eval, was das ganze nur verkompliziert.

Versuch dich auf cells einzulassen, sie sind eine wichtige und hilfreiche Art Daten zu verwalten. Z.B. lassen sich so schön Arrays unterschiedlicher Länge in "einer Variable" speichern.

Dein Problem solltest du nochmal versuchen anderst zu beschreiben, ich werde nicht ganz so schlau aus deiner Beschreibung.

Zitat:
Ich habe drei for-Schleifen mit den Variiablen j,i und k und möchte,
dass für jedes i eine Ergebnismatrix erzeugt wird. In der für alle k in einer bestimmten Spalte
meine Ergebnisse stehen.


Eventuell lohnt es sich auch entweder die Daten mitzugeben (Anhang) oder minimale Testdaten zu erstellen und hier zusammen mit einem gewünschten Ergebnis posten.

Immer bedenken, dass wir lange nicht so tief in deinem Problem sind (quasi auch Anfänger Wink) wie du.

Grüße
Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
Hamsterbacke
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 20.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.10.2013, 12:11     Titel:
  Antworten mit Zitat      
Ok, ich versuch jetzt erstmal noch besser zu beschreiben worum es mir geht.
Ich möchte eine große Menge Daten analysieren (z.B. Plots erzeugen) und dazu verschiedene Informationen in definierte Spalten einer Matrix schreiben. Diese Prozedur soll nicht nur für eine Matrix stattfinden
sondern i-Matritzen schreiben.So dass ich dann die Information a,b,c in den Spalten 1-3 stehen habe und
das für i-viele Szenarien in i-Matritzen.

Der folgende Code zeigt mal eine alternative Lösung für mein Problem, mit der ich aber nicht zufrieden bin. Die Ausgabe ist hier eine Matrix E mit 60 Spalten (für i=10). Ich hätte aber gerne 10 Matritzen mit 6 Spalten. Geht sowas nicht?
Code:
for k=1:2000  
[a,b,c,d,e,f] = textread('Name'); %Ergebnisse einlesen
Koor = load('Name'); %Koordinaten einlesen
m=length(Koor(:,1));
n=length(b(:,1));
for i=1:m %Koordinaten
for j=1:(n-1) %Ergebnisvektor
  if  c(j,1)== Koor(i,1)  && d(j,1)== Koor(i,2)
      E(k,i*8-5) = c(j,1);  
      E(k,i*8-4) = d(j,1);
      E(k,i*8-3) = c(j+1,1);
      E(k,i*8-2) = d(j+1,1);
      E(k,i*8-1) = e(j+1,1);
      E(k,i*8) = f(j+1,1);
 end
end
end
end


Vielen Dank für die große Bereitschaft zu helfen!
Private Nachricht senden Benutzer-Profile anzeigen
 
Hamsterbacke
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 20.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.10.2013, 14:24     Titel: Problem gelöst
  Antworten mit Zitat      
Ich habs jetzt mit dem Cell Array gemacht und es hat gut geklappt. Hab etwas gebraucht, bis ich den Nutzen verstanden habe Embarassed
Wieder was dazu gelernt!

Vielen Dank für die Hilfe
Private Nachricht senden Benutzer-Profile anzeigen
 
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.