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

Datentypen :-)

 

Nyquist
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 19.11.07
Wohnort: Laupheim
Version: ---
     Beitrag Verfasst am: 11.12.2007, 15:08     Titel: Datentypen :-)
  Antworten mit Zitat      
Hallo Leute

ich habe folgendes Problem.

ich habe ein Array aus Matrizen
dieses fülle ich in einer Funktion und will es an mein GUI übergeben
Code:

function[mData] = Datenimport(Messung, wert)

mData(1).a(Messung,wert)
 


in meinem GUI hole ich es folgendermaßen

[mData] = Datenimport(MessungNummer, Feldwert);

nun will ich mData(1).a(1,: ) ploten
dh mData(1) entspricht meinem ersten Messwert
die 1 bedeutet meine erste Messreihe und der : alle darin gespeicherten Messwerte.

wenn ich das so ploten will kommt ein Error

wo liegt mein Fehler, ich seh es gerade nur nicht

Vielen Dank Very Happy
_________________

Mit freundlcihem Gruß
Nyquist
Private Nachricht senden Benutzer-Profile anzeigen


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 11.12.2007, 15:24     Titel:
  Antworten mit Zitat      
Hallo Nyquist,

hilf uns, Dir zu helfen Smile :

Wie lautet Dein Plotbefehl? Wie lautet die Fehlermeldung? Und was ergibt

Code:


Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Nyquist
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 19.11.07
Wohnort: Laupheim
Version: ---
     Beitrag Verfasst am: 11.12.2007, 15:41     Titel:
  Antworten mit Zitat      
Hallo Bijick,

mein plot sieht so aus

Code:

plot(mData(6).a(i,:),mData(1).a(i,:), '-', 'LineWidth', 1, 'Color',[0 0 1], 'MarkerSize',1)
xlabel('Spannung (V)','FontWeight','bold','Color','black')
ylabel('Drehzahl (U/min)','FontWeight','bold','Color','black')
 


bei size(mData(1).a) kommt heraus 1 und 11
das ist der Bereich von meinem Array in dem die Matrizen drin sind

und den Error bring ich gerade nicht mehr hin

irgendetwas mit cell exceeds on non cell strucure

ich glaube das hat was mit der Übergabe von Funktion zur GUI zu tun
und weniger mit dem plot Befehl
_________________

Mit freundlcihem Gruß
Nyquist
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 11.12.2007, 15:50     Titel:
  Antworten mit Zitat      
Hallo Nyquist,

ich habe sowas ähnliches auch schon mal probiert und bin mit diesem/deinen Ansatz auch nicht weitergekommen, da man auf Struct-Matritzen nur in der Form
Code:
mydata(1,:).a
zugreifen kann, zumindest habe ich es anhand meiner Fehlermeldungen so interpretiert. Dabei ist a die Matrix auf die du zugreifst.
Das würde bedeuten, dass deine Matrix/Vektor mydata.a nicht die Werte enthält, die du vermutest. (Ebenfalls eine Vermutung meinerseits)

Allerdings habe ich kein Lösungsvorschlag parat, da ich mich so gut wie gar nicht mit cell arrays auskenne - allerdings glaube ich, dass man dort eine Lösung finden könnte!?

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 11.12.2007, 16:04     Titel:
  Antworten mit Zitat      
Hallo Nyquist,

es wäre schon sehr hilfreich zu wissen, welche Codezeile welchen Fehler produziert. Von cells sehe ich in Deinem Code bisher gar nichts.

mData ist ja ein Vektor von Strukturen, also mData(1) und mData(6) sind jeweils eine Struktur mit (mindestens) dem Feld a, jeweils einem 1x11-Vektor.

Wenn das so ist, sollte das plotten klappen.

Wenn das nicht so ist, müssten wir herausfinden, warum nicht. Dafür wäre die Erzeugung von mData in der Funktion Datenimport interessant. Warum gerade die Übergabe nicht klappen sollte, kann ich mir gerade nicht vorstellen. Aber ich lasse mich gern belehren. Klappt es denn, die Funktion aus dem Command Window aufzurufen und zu plotten?

An dem Datenformat sollte es nicht liegen, beispielsweise geht ja

Code:
A(1).a=magic(3);
plot(1:3,A(1).a(2,:))


Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Nyquist
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 19.11.07
Wohnort: Laupheim
Version: ---
     Beitrag Verfasst am: 12.12.2007, 08:26     Titel:
  Antworten mit Zitat      
Hallo Bijick,

hatte gestern noch ein dringlicheres Problem... Smile

zu dem Thema das ich gestern angesprochen habe habe ich folgendes herausgefunden.

Ich bestücke mein Feld jetzt folgendermaßen
Code:

 function[mData] = Datenimport(Messung, wert)
            mData(1,Messung).a(wert) = Drehzahl;   %Drehzahl
            mData(2,Messung).a(wert) = Drehmoment;   %Drehmoment
            mData(3,Messung).a(wert) = StromI1;   %Effektivwert Strom Phase 1
            mData(4,Messung).a(wert) = StromI2;   %Effektivwert Strom Phase 2
            mData(5,Messung).a(wert) = StromI3;   %Effektivwert Strom Phase 3
            mData(6,Messung).a(wert) = SpannungU1;   %Effektivwert Spannung  Phase 1
            mData(7,Messung).a(wert) = SpannungU2;   %Effektivwert Spannung  Phase 2
            mData(8,Messung).a(wert) = SpannungU3;   %Effektivwert Spannung  Phase 3
            mData(9,Messung).a(wert) = Wirkleistung;   %Summe Wirkleistung P123
            mData(10,Messung).a(wert) = Blindleistung;   %Summe Blindleistung S123
            mData(11,Messung).a(wert) = Scheinleistung;   %Summe Scheinleistung S123
     
            wert=wert+1;
           
        end


d.h. ich hole Messwerte rufe die Funktion auf schriebe sie rein, dann geh ich einen Schritt weiter und steh im Feld da wo der nächste Wert hinkommt.

bei mir wird aber immer nur der letzt wert angezeigt wenn ich z.b. mData(10,1).a im Command Window ausgebe dann wird 0 0 0 0 0 0 2356 ausgegeben obwohl die 7 Werte davor alle abgespeichert wurden.
Wenn ich dann noch einen abspeichere dann wird 0 0 0 0 0 0 0 2245 ausgegeben. Entweder werden die Messwerte überschrieben oder....

Danke Confused
_________________

Mit freundlcihem Gruß
Nyquist
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 12.12.2007, 09:39     Titel:
  Antworten mit Zitat      
Hallo Nyquist,

da kommen wir der Sache ja schon näher. Very Happy In der Funktion gibt es ja (grundsätzlich) nur lokale Variablen, das heißt mData wird in jedem Funktionsaufruf neu angelegt. Die Lösung wäre, mData auch selbst an die Funktion zu übergeben:

Code:
function mData = Datenimport(Messung, wert, mData)
 


Merkwürdig finde ich
Code:
wert=wert+1;


Ist die Variable persistent oder global? Sonst dürfte die Erhöhung in der Funktion gar keinen Effekt haben...

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Nyquist
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 19.11.07
Wohnort: Laupheim
Version: ---
     Beitrag Verfasst am: 12.12.2007, 10:05     Titel:
  Antworten mit Zitat      
Danke Bijick,

das ist die Lösung, jetzt ist es mir auch klar. tausend Dank.
Das wert=wert+1 hab ich schon gestern rausgemacht da es doppelt drin war mit der globalen wert die ich von meinem GUI an die Funktion übergebe.

Herzlichen Dank
Very Happy
_________________

Mit freundlcihem Gruß
Nyquist
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.