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

3d logical Matrix erzeugen

 

Martin1986
Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 20.06.11
Wohnort: ---
Version: Win 2016b Linux 2016b
     Beitrag Verfasst am: 26.10.2013, 12:50     Titel: 3d logical Matrix erzeugen
  Antworten mit Zitat      
Hallo,

ich habe 2 cells mit Logic-Vektoren jeder cell eintrag ist 444 lang
ich möchte darauß darauß ein 26x11x444 matrix erstellen nur habe ich gerade einen gedanklichen hänger weder mit arrayfun noch bsxfun konnte ich ihn überzeugen das zu erstellen

Code:
test1=arrayfun(@(y_val) Index_x{1,1}&cell2mat(y_val),Index_y, 'UniformOutput', false);

alle aus einem gegen einen einzelnen eintrag geht das noch problemlos gegen die gesamtheit leider nicht mehr hat jemand ideen?

vektoren.zip
 Beschreibung:
hier die vektoren als zip da mat nicht ging

Download
 Dateiname:  vektoren.zip
 Dateigröße:  862 Bytes
 Heruntergeladen:  212 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.10.2013, 13:00     Titel:
  Antworten mit Zitat      
Hallo,

welche Dimensionen haben die anfänglichen Cell Arrays? 26x11?
Hat jede Cell jedes Cell Arrays die Dimensionen 444x1?

Was willst du denn eigentlich als Ergebnis haben? Die Dimensionen des Ergebnisses reichen ja nicht um zu wissen, was drinstehen soll.

Ein komponentenweises & ginge z.B. so:
Code:
c1 = cell(26,11);
for I = 1:numel(c1)
    c1{I} = rand(444,1) < 0.5;
end

c2 = cell(26,11);
for I = 1:numel(c1)
    c2{I} = rand(444,1) < 0.5;
end

C = cellfun(@(c1, c2) c1 & c2, c1, c2, 'UniformOutput', false);


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Martin1986
Themenstarter

Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 20.06.11
Wohnort: ---
Version: Win 2016b Linux 2016b
     Beitrag Verfasst am: 26.10.2013, 13:06     Titel:
  Antworten mit Zitat      
hallo Harald ich habe die Vektoren noch mal gezippt reingestellt als mat ging leider nicht....

das sollte deine Fragen beantworten und dein Vorschlag generiert leider den output den ich auch schon hatte Wink
Error using cellfun
All of the input arguments must be of the same size and shape.
Previous inputs had size 26 in dimension 2. Input #3 has size 11.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.10.2013, 15:08     Titel:
  Antworten mit Zitat      
Hallo,

mein Code läuft zumindest in 2012b wie angegeben.
Wenn es bei dir nicht läuft, dann hast du vermutlich Eingabedaten eines anderen Formats. Um dir also helfen zu können, müsste ich wissen, welches Format deine Eingabedaten haben.
.mat - Dateien können gezippt und dann angehängt werden.

Im übrigen weiß ich nach wie vor nicht sicher, welche Ergebnisse du eigentlich erhalten willst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Martin1986
Themenstarter

Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 20.06.11
Wohnort: ---
Version: Win 2016b Linux 2016b
     Beitrag Verfasst am: 26.10.2013, 15:56     Titel:
  Antworten mit Zitat      
hallo Harald ich habe die zip schon den ersten beitrag angehangen.

Ich möchte ein 3d-Matrix erstellen 26x11x444 also 26x11 einträge die jeweils 444 logical werte enthalten
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.10.2013, 16:14     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
ich habe die zip schon den ersten beitrag angehangen.

Muss ich übersehen haben.

Zitat:
Ich möchte ein 3d-Matrix erstellen 26x11x444 also 26x11 einträge die jeweils 444 logical werte enthalten

Die Anzahl der gewünschten Werte gibt leider nach wie vor keine Auskunft darüber, wie die Einträge bestimmt werden sollen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Martin1986
Themenstarter

Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 20.06.11
Wohnort: ---
Version: Win 2016b Linux 2016b
     Beitrag Verfasst am: 26.10.2013, 16:43     Titel:
  Antworten mit Zitat      
soa das Ziel soll so aussehen siehe Anhang

ziel.zip
 Beschreibung:

Download
 Dateiname:  ziel.zip
 Dateigröße:  1.47 KB
 Heruntergeladen:  208 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.10.2013, 18:01     Titel:
  Antworten mit Zitat      
Hallo,

und wie hast du diese Matrix jetzt erstellt? Davon abgesehen, dass sie 11x26 ist und nicht 26x11.
Entschuldige, aber ich werde jetzt nicht 26*11 Vektoren mit je 444 Elementen ansehen und hoffen, dass ich darin ein Muster erkenne.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Martin1986
Themenstarter

Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 20.06.11
Wohnort: ---
Version: Win 2016b Linux 2016b
     Beitrag Verfasst am: 26.10.2013, 18:29     Titel:
  Antworten mit Zitat      
händisch was mir leider nichts bringt das munster ist halt die verteilung im
Raum also das Muster ist das Ziel ja ich habe das der kürze halber gedreht sonst hätte ich das 26 statt 11 mal machen müssen ich bräuchte das ganze nur dynamisch aber irgendwie stelle ich mich heute dabei etwas blöde an Confused

Code:
test1=arrayfun(@(x_val) Index_x{1,1}&cell2mat(x_val),Index_x, 'UniformOutput', false);
test2=arrayfun(@(x_val) Index_x{1,2}&cell2mat(x_val),Index_x, 'UniformOutput', false);
test3=arrayfun(@(x_val) Index_x{1,3}&cell2mat(x_val),Index_x, 'UniformOutput', false);
test4=arrayfun(@(x_val) Index_x{1,4}&cell2mat(x_val),Index_x, 'UniformOutput', false);
test5=arrayfun(@(x_val) Index_x{1,5}&cell2mat(x_val),Index_x, 'UniformOutput', false);
test6=arrayfun(@(x_val) Index_x{1,6}&cell2mat(x_val),Index_x, 'UniformOutput', false);
test7=arrayfun(@(x_val) Index_x{1,7}&cell2mat(x_val),Index_x, 'UniformOutput', false);
test8=arrayfun(@(x_val) Index_x{1,8}&cell2mat(x_val),Index_x, 'UniformOutput', false);
test9=arrayfun(@(x_val) Index_x{1,9}&cell2mat(x_val),Index_x, 'UniformOutput', false);
test10=arrayfun(@(x_val) Index_x{1,10}&cell2mat(x_val),Index_x, 'UniformOutput', false);
test11=arrayfun(@(x_val) Index_x{1,11}&cell2mat(x_val),Index_x, 'UniformOutput', false);
ziel=[test1; test2; test3; test4; test5; test6; test7; test8; test9; test10; test11];
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.10.2013, 20:00     Titel:
  Antworten mit Zitat      
Hallo,

Deinen Code könnte man so verkürzen:
Code:
test = cell(1,11);
for I = 1:11
    test{I} = arrayfun(@(x_val) Index_x{I}&cell2mat(x_val),Index_x, 'UniformOutput', false);
end
ziel2 = vertcat(test{:});

Was mich allerdings verwundert: dein zweiter Vektor Index_y kommt gar nicht vor. Ist das Absicht?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Martin1986
Themenstarter

Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 20.06.11
Wohnort: ---
Version: Win 2016b Linux 2016b
     Beitrag Verfasst am: 26.10.2013, 20:11     Titel:
  Antworten mit Zitat      
nein war es nicht aber danke so geht es dann wenn man y auch wieder nimmt Wink ohne forschleife wäre zwar schöner gewesen aber naja was solls
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.