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

Schleife mit Regeln für die Auswertung einer Datenmatrix

 

PiT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2013, 12:30     Titel: Schleife mit Regeln für die Auswertung einer Datenmatrix
  Antworten mit Zitat      
Hallo, ich bin blutiger Anfänger und hoffe auf Unterstützung.

Ich habe eine 4-spaltige Datenmatrix und würde mir gerne die Werte der letzten Spalte data(:,4) ausgeben lassen.
Dabei sollen Regeln die Spalten 1 & 2 berücksichtigen also das ganze für alle Fälle(1:5) von data(:,1) und data(:,2) ordnen.

Also in etwa:
Code:
% der klägliche Versuch einer Schleife

for i=1:5;
A=data(:,1)==i;
B=data(:,2)==i;
   
if (A) & (B) dann bitte die Werte von data(:,4)
   
end
 


Wie kann ich das machen?

Dankeee


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 29.08.2013, 12:47     Titel:
  Antworten mit Zitat      
Code:
for i=1:5;
data(data(:,1)==i & data(:,2)==i,4)  
end

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
PiT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2013, 13:49     Titel:
  Antworten mit Zitat      
Vielen Dank für die schnelle Antwort, aber es klappt leider nicht:

13:34:10.745: JIT compile failed:"JIT compiler doesn't work with verbose statements" at line 1 of "docli"

ans =
Empty array 0x1
ans =
Empty array 0x1
ans =
Empty array 0x1
ans =
Empty array 0x1
ans =
Empty array 0x1
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 29.08.2013, 13:49     Titel:
  Antworten mit Zitat      
bei mir läuft der code und macht auch das was er soll. vieleicht solltest du dein problem nochmal genauer beschreiben.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
PiT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2013, 13:51     Titel:
  Antworten mit Zitat      
Vielen Dank für die schnelle Antwort, aber es klappt leider nicht:

13:34:10.745: JIT compile failed:"JIT compiler doesn't work with verbose statements" at line 1 of "docli"

ans =
Empty array 0x1
ans =
Empty array 0x1
ans =
Empty array 0x1
ans =
Empty array 0x1
ans =
Empty array 0x1
 
PiT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2013, 14:00     Titel:
  Antworten mit Zitat      
Sorry für die doppelposts.

Auf die Werte von Spalte 4 in 'data' hab ichs abgesehen.
Diese sollten nach den Fällen in Spalte 1 und 2 geordnet sein.

Also z.B. wenn in der ersten Spalte die Kategorie 1 gilt und in der zweiten Spalte die Kategorie 5 dann sollten mir die dazugehörigen Werte aus Spalte 4 angezeigt werden und dass natürlich für alle Kategorien (1:5) in beiden Spalten.

Anbei die Variable data.
Liegt es vielleicht daran dass ich gerade Freemat benutze?
Bei so grundlegenden Codes dürfte es aber keine Unterschiede geben oder?

Vielen Dank!

Workspace.zip
 Beschreibung:

Download
 Dateiname:  Workspace.zip
 Dateigröße:  1.88 KB
 Heruntergeladen:  251 mal
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 29.08.2013, 14:08     Titel:
  Antworten mit Zitat      
auch bei deiner data matrix macht mein code das was du oben also pseudo code geschrieben hast
das scheint aber nicht das zu sein was ich meine. du solltest versuchen deine fragen so zu stellen das jemand es versteht der nicht weis was du willst ^^
Zitat:
Also z.B. wenn in der ersten Spalte die Kategorie 1 gilt und in der zweiten Spalte die Kategorie 5 dann sollten mir die dazugehörigen Werte aus Spalte 4 angezeigt werden
das ist nicht das was du oben gecodet hast. und was ist denn der zugehörige wert? in deiner datei stehen viele werte.
wenn du alle kombinationen haben willst brauchst du 2 forschleifen.
Zitat:
Diese sollten nach den Fällen in Spalte 1 und 2 geordnet sein.

wie denn geordnet??? das ist alles sehr schwammig.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
PiT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2013, 14:16     Titel:
  Antworten mit Zitat      
Ok ich bemühe mich um detailreichtum und sinnhaftigkeit Smile

2 Schleifen sind vermutlich richtig.

Also Ziel sollte z.B. sein:

1 - 5 - egal - 30
1 - 5 - egal - 40
1 - 5 - egal - 20

Sprich: Nur die Werte aus Spalte 4 die in Spalte 1 und 2 aus den Kategorien 1 und 5 bestehen.

und das Ganze dann natürlich für alle Kombinationen von Spalte 1 und 2.

Ist es jetzt verständlich?

Vielen Dank für die Hilfe!
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 29.08.2013, 14:33     Titel:
  Antworten mit Zitat      
was ist mit den nan in spalte 4?
Code:
for k=1:5
for l=1:5
a=data(data(:,1)==k & data(:,2)==l,4)
a=a(~isnan(a));
end
end

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
PiT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2013, 15:00     Titel:
  Antworten mit Zitat      
Winkow hat Folgendes geschrieben:
was ist mit den nan in spalte 4?
Code:
for k=1:5
for l=1:5
a=data(data(:,1)==k & data(:,2)==l,4)
a=a(~isnan(a));
end
end


Wenn die NaNs wegfallen wärs super!
Leider gibt er mir jetzt für a die selbe Fehlermeldung wie oben. Kann ich dann nicht auch mehrere Variablen erhalten?

Also pro Kombi aus Spalte 1 & 2 eine Variable mit den Werten (ohne NaN) aus 4:

Z.B.

a=Variable mit den Werten aus den Kategorien 1 und 1
b=1 und 2
c=1 und 3
d=1 und 4
e=1 und 5

f=Variable mit den Werten aus den Kategorien 2 und 1
g=2 und 2
h=2 und 3
i=2 und 4
j=2 und 5

usw.
 
PiT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2013, 15:06     Titel:
  Antworten mit Zitat      
Ist es auch möglich sich den Mittelwert der jeweiligen Kombinationen ausgeben zu lassen???

also z.B. für die Kombi aus 1 - 5 = 20,5
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 29.08.2013, 15:06     Titel:
  Antworten mit Zitat      
du solltest vieleicht selber ein wenig probieren. ich hab dir bereits alles gegeben was du brauchst. grundlegende vorstellung von dem was man da macht und was man will ist vorraussetzung. und ich hab das gefühl das fehlt dir irgendwie ^^ vieleicht guckst du dir mal ein paar programmier tutorials an oder das getting startet in matlab. auch sachen zur logischen indizierung wären denke ich hilfreich. du kannst auch mal mit dem debugger in die schleife gehen um nachzuvollzihen was dort gemacht wird und dann gegebenenfalls änderungen vornehmen an sachen die dir nicht gefallen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
PiT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2013, 15:43     Titel:
  Antworten mit Zitat      
Ok vielen Dank für die Beiträge!
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 29.08.2013, 15:46     Titel:
  Antworten mit Zitat      
wenn du dann code hast der läuft aber nicht genau das macht was du willst kannst dich ja nochmal melden.
_________________

richtig Fragen
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.