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

Variablenname in Variable

 

scheindruck
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 26.09.08
Wohnort: Kopenhagen
Version: ---
     Beitrag Verfasst am: 29.09.2008, 14:21     Titel: Variablenname in Variable
  Antworten mit Zitat      
Hallo

Habe folgendes Problem:

Ich lese eine ganze Menge 2d-Arrays aus verschiedenen Txt files.
Diese speichere ich dann unter dem Namen des Textfiles im Workspace.

In einem andren Array speichere ich die Variablennamen.

Aus den gesammelten Arrays møchte ich nun jeweils die selben Zellen in einem Plot darstellen, beispielsweise jeweils die Zelle 1,1. Dann kann ich sehen wie sich der Wert dieser Zelle im Laufe der Zeit ændert.

mein Gedanke ist nun (und ich lasse mich ausgesprochen gerne eines einfacheren belehren Smile das ich die Arrays mittels der namen wieder aufrufen kann.

Quasi:
array1 (100X100)
array2 (100X100)
name1='array1'
name2='array2'

wie kann ich nun mit hilfe von name1 und name2 bestimmte zellen auslesen

A= eval(name1(1,1) ... oder so...

Falls es eine einfachere Løsung gibt ... bitte bitte her damit Smile

Bin auch immer noch auf der Suche nach einer Møglichkeit die ganzen 2d-arrays in ein 3d array zu packen... bisher leider erfolglos...

Vielen Dank fuer eure Hilfe!!

Gruesse aus dem Norden
KAI
Private Nachricht senden Benutzer-Profile anzeigen


Kopi
Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 28.09.08
Wohnort: weit weg von der Heimat
Version: R2020b
     Beitrag Verfasst am: 29.09.2008, 15:23     Titel:
  Antworten mit Zitat      
Hi,

die Funktion eval ist mir bis heute schleierhaft! Ich habe mit der Funktion "find" angefangen und würde es heute mit Logic machen.

NR = NAME(:,1) == 1;

ARRAY_1 = NAME(NR,1);

: - meint alles
1:2 - Zeile 1 bis 2 werden geladen
end-1:1 - letzte Zeile -1 bis zur ersten

Hoffe das hast du gemeint. Hört sich für mich nach Syntax schwierigkeiten an.

Cheers,
Gerrit
Private Nachricht senden Benutzer-Profile anzeigen
 
scheindruck
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 26.09.08
Wohnort: Kopenhagen
Version: ---
     Beitrag Verfasst am: 29.09.2008, 15:34     Titel:
  Antworten mit Zitat      
Hey, vielen Dank!

Ja, kommt meinem Problem schin næher Smile

Die Sache ist, das ich von verschiedenen Arrays jeweils das selbe Feld aufrufen will, also von Array1 und array2 jeweils Feld 1,1

und dies dann weiterverarbeiten...

ich hab jetzt eine art Løsung gefunden, welche aber sehr unhuebsch ist:
Code:

clear all
pfad = 'f:\delphitest';
liste = dir(pfad);
files = {liste.name};
for k=3:numel(files)
dat = dlmread([pfad '\' files{k}],';',1,0);
vanam=strrep(files{k},'.txt','')                   %Dateiname anpassen
vanam=strrep(vanam,'statistics_','')           %Dateiname anpassen
assignin ('base',['P' int2str(k)],dat);     % Variablenname anpassen - hab die Arrays jetzt einfach druchnummeriert fuer den Anfang...
end
for i=3:61                                         % anzahl der variablen - rohversion!
nem=['P' int2str(i)];
eval(['ac(1,' int2str(i) ')=' nem '(1,3)']);
end
plot(ac)
 

Der Nachteil an dieser Sache ist halt wirklich, das ich die Variablen umbenennen muss und generell nicht so flexibel bin, aber da kommt mit sicherlich nohc ein gedanke

Bisher frage ich mich noch wieso so viele Leute matlab verwenden, den Kram hier hætte ich in VB oder Delphi schon dreimal erledigt... aber ich versuche mich ueberzeugen zu lassen Wink

Bis neulich

edit by steve: Bitte die Code-Umgebung nutzen - Button oben mittig!
Private Nachricht senden Benutzer-Profile anzeigen
 
Kopi
Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 28.09.08
Wohnort: weit weg von der Heimat
Version: R2020b
     Beitrag Verfasst am: 29.09.2008, 15:55     Titel:
  Antworten mit Zitat      
Hi,

sieht irgendwie kompliziert aus.

Um beispielsweise ein Array zu nummerieren kannst du auch das machen:

NR(:,1) = 1:5

ARRAY = [NR, ARRAY]

oder gleich ARRAY = [ 1:5, ARRAY]

Cheers,
Gerrit

files = {liste.name}; - die geschweiften Klammern kannst du weglassen

Habe auf diesem Rechner leider kein Matlab. Somit kann ich später erst mehr helfen.
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 - 2024 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.