|
|
Allgememeine Frage zu matlab |
|
Jerno |

Forum-Anfänger
|
 |
Beiträge: 21
|
 |
|
 |
Anmeldedatum: 19.10.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.11.2009, 12:09
Titel: Allgememeine Frage zu matlab
|
 |
Hallo Leute
sagt mal wenn ich immer 40 Objekte habe und diese immer mit den 40 vorangegangene vergleichen will, so dass das nächste immer den geringesten Abstand zum vorangegangen hat dann geht sowas doch nur mittels einer if schleife, oder?
Hab das so realitisert, ist aber ein sehr großes Programm welches mein Chef lieber kleiner hätte.
Hoffe mir kann dazu jemand was sagen....
Gruß Jerno
|
|
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.11.2009, 12:45
Titel:
|
 |
Hallo Jerno,
keine Ahnung wie es anderen geht, aber mir ist die Frage zu vage ...
Z.B.: "Objekte" sind was? Zahlen, Objekte (einer Klasse?), ...
Fragen über Fragen .
Titus
|
|
|
Jerno |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 21
|
 |
|
 |
Anmeldedatum: 19.10.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.11.2009, 14:23
Titel:
|
 |
Also jetzt mal ganz genau,
ich habe 40 Signale und will diese sortieren, da sie springen.
Ich bekomme für jedes Signal eine 1x900 Matrix in der der Verlauf dargestellt ist.
Nun will ich für jedes Einzelsignal einen Abgleich mit den anderen 40 ob der Abstand am geringesten ist, das habe ich mit Schleifen realisiert, ist aber ein echtes Monster und müßte eig auch kleiner möglich sein.Es müssen 40 mal 40 signale gegeneinenader verglichen werden.
Hoffe das war jetzt verständlicher...
Gruß Jerno
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.11.2009, 14:33
Titel:
|
 |
Hallo Jerno,
hmm, sollte eigentlich kein Monster bei rauskommen. Sei X eine 900x40 Matrix, d.h., in jeder Spalte steht ein Signal. Dann hilft das hier vielleicht weiter:
Hilft hoffentlich etwas weiter ...?
Titus
[/quote][/code]
|
|
|
Jerno |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 21
|
 |
|
 |
Anmeldedatum: 19.10.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.11.2009, 09:52
Titel:
|
 |
Hey Titus
ich bekomme wenn ich dein System verwende folgende Fehlermeldung:
??? Undefined function or method 'bsxfun' for input arguments of type 'function_handle'.
Mein Matlab kennt den bsxfun Befehl nicht, hab es eben getestet. Kann ich das vllt noch anders lösen.
Vielen Dank, dass Du Dir Zeit nimmst.
Gruß Jerno
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.11.2009, 10:04
Titel:
|
 |
Hallo,
bsxfun gibt es immerhin schon seit 2007a. Darf man mal fragen, welche Version du benutzt?
Grüße,
Harald
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 20.11.2009, 10:05
Titel:
|
 |
Welches Release wird hier benutzt und was gibt der WHICH Befehl zurück:
Andreas
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.11.2009, 11:28
Titel:
|
 |
Hallo,
gibt zwei Möglichkeiten: die einfacheste ist, die bsxfun-Zeile zu ersetzen durch
Alternativ natürlich durch eine einfache Schleife .
Titus
|
|
|
Jerno |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 21
|
 |
|
 |
Anmeldedatum: 19.10.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.11.2009, 12:15
Titel:
|
 |
Hallo zusammen
sorry für die Mühe die Ihr mit mir habt.
Also ich weiß nicht ob ich es richtig erklärt habe...es ist so:
Ich habe eine 40X900 Matrix und will nun die 2. Spalte, die 3. Spalte usw immer mit der vorhergegangenen Spalte vergleichen also alle 40 Werte der 2. Spalte mit dem 1,1 Wert, dann dieselben mit dem 1,2 usw und dann will ich eine Zuordung machen in der immer der gingste Abstand zum nächsten Wert eingetragen wird.
Ich mache mal ein Bsp:
Originalmatrix
1.0 1.5 2.8 3.4 1.0 0.8
4.0 2.9 1.6 9.2 2.9 3.1
9.3 8.9 9.1 1.4 9.0 9.5
wenn ich nun das matlab programm starte soll folgendes rauskommen
1.0 1.5 1.6 1.4 1.0 0.8
4.0 2.9 2.8 3.4 2.9 3.1
9.3 8.9 9.1 9.2 9.0 9.5
ich weiß nicht wie ich das ohne eine riesen Ansammlung von Schleifen realisieren soll.
Wäre also für jeden Tip sehr dankbar
Ach und ich habe Matlab 7.3.0 (R2006b)
Gruß Jerno
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.11.2009, 14:00
Titel:
|
 |
Hallo,
kein Problem .
Nur, dass ich die Frage richtig verstehe (X ist die Matrix): um die 2. Spalte festzulegen, möchtest Du
- den Eintrag in X(:,2) suchen, der dem Wert X(1,1) am nächsten liegt, und den mit X(1,2) tauschen
- dann suchst Du in X(2:end, 2) den Wert, der X(2,1) am nächsten liegt, und tauschst den dann mit X(2,2)
- usw.
??
Titus
|
|
|
Jerno |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 21
|
 |
|
 |
Anmeldedatum: 19.10.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.11.2009, 09:25
Titel:
|
 |
Hallo Titus
ja genau so wie Du das beschreibst soll es ablaufen, und haste Du da ne Idee?
Gruß Jerno
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|