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

Kombinationen eigener Arrays finden

 

der Valdi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2010, 13:14     Titel: Kombinationen eigener Arrays finden
  Antworten mit Zitat      
Guten Tag an alle!

Ich habe folgendes Probel. Ich habe mehrere double arrays und möchte nun anhand der Kombinationsnummer auf die Kombination rückschließen.

Also beispielsweise:
Code:

array1 = [1,2,3,4];
array2 = [70, 80, 90, 100, 110];
array3 = [0.5, 0.6];
 

Insgesamt ergeben sich hier (jeweils die Länge der arrays multiplizieren) 4 * 5 * 2 = 40 Kombinationen.

Bekommen möchte ich nun folgendes. Für gegebene Kombinationsnummer möchte ich nun rückwärts auf die Werte schließen und zwar "von unten nach oben". Erklärung:
Code:

% KombiNummer 1: array1(1) = 1
%                array2(1) = 70
%                array3(1) = 0.5
% KombiNummer 2: array1(1) = 1
%                array2(1) = 70
%                array3(2) = 0.6
% KombiNummer 3: array1(1) = 1
%                array2(2) = 70
%                array3(1) = 0.6
% usw...
 

(die Code Umgebung wegen Lesbarkeit)
Für Kombinationsummer 3 ist der Wert von array3 wieder auf dem ersten, denn "ich habe wieder vorne angefangen". Dafür ist aber array2 im Index um eins erhöht worden.

Irgendwie habe ich das Gefühl, das könnte mit Restklassen zu tun haben und modulo, Allerdings habe ich da nichts funktionierendes gefunden...

Ach ja, wie immer: Wäre schön, wenns ohne Schleife gehen würde Wink

Danke an alle die sich Gedanken machen und viele Grüße
der Vladi


Thomas84
Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2010, 14:02     Titel:
  Antworten mit Zitat      
Code:

array1 = [1,2,3,4];
array2 = [70, 80, 90, 100, 110];
array3 = [0.5, 0.6];

[j,k,l] = ind2sub([length(array1),length(array2),length(array3)],[6,8]);

array1(j)
array2(k)
array3(l)
 


wie gewünscht ohne schleife. Allerdings ist das Nummerierungsschema etwas anders als bei dir. Da must du Notfalls noch etwas basteln.
Private Nachricht senden Benutzer-Profile anzeigen
 
der Vladi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2010, 15:37     Titel:
  Antworten mit Zitat      
Hallo Thomas84,

leider komme ich mit deinem Vorschlag nicht so richtig weiter.

Wie oben geschrieben, gibt es 20 verschiedene Kombinationen der Werte, die in array1 bis array3 gegeben sind.

Gesucht ist eine Methode, die folgendes macht:
Code:

function [ind1, ind2, ind3] = methode(array1, array2, array3, kombinationsnummer)
% hier die methode
end
 


Die Rückgabewerte ind1, ind2 und ind3 sind nun die Indizes der Arrays array1 bis array3.
Konkret soll array3 durchlaufen werden und erhalten möchte ich
Code:

Nummer = 1
array1(1)
array2(1)
array3(1)

Nummer = 2
array1(1)
array2(1)
array3(2)

Nummer = 3
array1(1)
array2(2)
array3(1)

Nummer = 4
array1(1)
array2(2)
array3(2)

Nummer = 5
array1(1)
array2(3)
array3(1)

Nummer = 6
array1(1)
array2(3)
array3(2)

... usw
 


Dank dir schonmal!
viele Grüße
der Vladi
 
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.