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

Cellfun ohne die n x m strucktur zu 1 x c zu wechseln

 

KEH
Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 09.10.14
Wohnort: ---
Version: 2016b
     Beitrag Verfasst am: 21.04.2015, 11:43     Titel: Cellfun ohne die n x m strucktur zu 1 x c zu wechseln
  Antworten mit Zitat      
Hallo

Mal ein Neues Thema da es wohl sonst zu Komplex wird

Cellfun schein toll zu sein doch es macht meine 78 x 10 Array (Matrix_cut1) zu einem 1 x 308 Array

Code:
for iFiles = 1:length(FileName)
remove(iFiles,:) = cellfun('size', Matrix_cut1(iFiles,1:10), 1) < 6 | cellfun('size', Matrix_cut1(iFiles,1:10), 2) < 15000;
%Matrix_cut1(remove) = [];
Matrix_cut1(iFiles,remove) = [];
end


Ziel ist ein 78 x 5 Array

der code gibt folgendes Aus
A null assignment can have only one non-colon index.

Error in Elyptic_regression2 (line 56)
Matrix_cut1(iFiles,remove) = [];

wie kann ich nun aus dm Non-colon ein colon machen?

Vielen Dank
KEH

2versuch ging auch ins leere (Selbe Fehlermeldung)

Code:
for iFiles = 1:length(FileName)
for iVersuche = 1:10
remove(iFiles,iVersuche) = cellfun('size', Matrix_cut1(iFiles,iVersuche), 1) < 6 | cellfun('size', Matrix_cut1(iFiles,iVersuche), 2) < 15000;
%Matrix_cut1(remove) = [];
Matrix_cut1(iFiles,remove(iFiles,iVersuche)) = [];
end
end
Private Nachricht senden Benutzer-Profile anzeigen


KEH
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 09.10.14
Wohnort: ---
Version: 2016b
     Beitrag Verfasst am: 21.04.2015, 13:12     Titel:
  Antworten mit Zitat      
Scheint nicht so einfach zu sein

Ich hab nun ein Array geschrieben mit 1x78 in jeder zelle stehen 1 x n ( n= 3 bis Cool und in diesen zellen stehen dann die matrizen

hat jemand dafür eine Idee zu dieser Konstelation???

C Nutze ich um den Fehler zu umgehen das meine Matrix kleiner wird
Es Läuft so durch aber das ergebnis ist absolut nich das richtige ( remove gibt 1 x 78 mit 1en aus) und g ist eine celle mit einer 1 x 8 celle)


Code:
for iFile = 1:max(size(Matrix_cut2))
    C = Matrix_cut2(iFile)
remove(iFile) = cellfun('size', C, 2) < 15000;
%Matrix_cut1(remove) = [];
 g = C(remove(iFile));

end
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 21.04.2015, 15:13     Titel: Re: Cellfun ohne die n x m strucktur zu 1 x c zu wechseln
  Antworten mit Zitat      
Hallo KEH,

Code:
for iFiles = 1:length(FileName)
remove(iFiles,:) = cellfun('size', Matrix_cut1(iFiles,1:10), 1) < 6 | cellfun('size', Matrix_cut1(iFiles,1:10), 2) < 15000;

Der Sinn des Codes ist nicht nachvollziehbar. Wieso speicherst Du "remove" als Matrix für alle iFiles? Spätestens bei:
Code:
Matrix_cut1(iFiles,remove) = [];

kann ich nicht mehr nachvollziehen, wozu remove hier eine Matrix sein soll. Es ist auch nicht klar, wieso Du ein 78 x 5 Array erwartest.

Zitat:
wie kann ich nun aus dm Non-colon ein colon machen?

Die Frage verstehe ich nicht.

Dies giobt die gleiche Fehlöermeldung? Rätselhaft.
Code:
remove(iFiles,iVersuche) = cellfun('size', Matrix_cut1(iFiles,iVersuche), 1) < 6 | cellfun('size', Matrix_cut1(iFiles,iVersuche), 2) < 15000;

Hier ist die linke Seite ein Skalar, die Rechte aber ein Vektor. Das sollte zu einer anderen Meldung führen.

Bitte erkläre nochmal, welche Input-Daten Du hast und welche Funktion ausgeführt werden soll. Der fehlerhafte Code erlaubt noch nicht zu verstehen, was Du vorhast.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
KEH
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 09.10.14
Wohnort: ---
Version: 2016b
     Beitrag Verfasst am: 21.04.2015, 20:48     Titel:
  Antworten mit Zitat      
Puhh ich versuchs mal

Ich erstele matrizen die ich in ein array schreibe, da ich n datein habe schreibe ich die m matrizen die ich aus den n datein erstellt habe in eine zeile des arrays
daraus entsteht eine n x m array ( n datein , m mmatrizen pro datei )
Hierbei ist m nicht für jede daie konstant

Die m matrizen sollen nach der Größe gefiltert werden ( > 6x15000)
Anschließend können max 5 matrizen je zeile übrigbleiben , die diese bedingung erfüllen...
also sollte ein array entstehen welches n x 5 ist

Bisher entstet nach dem filter eine 1x n*m array
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 22.04.2015, 09:02     Titel:
  Antworten mit Zitat      
Hallo KEH,

Zitat:
daraus entsteht eine n x m array ( n datein , m mmatrizen pro datei )
Hierbei ist m nicht für jede daie konstant

Das ist nicht machbar. In einem n x m Array muss m konstant sein für alle Zeilen.

Zitat:
Die m matrizen sollen nach der Größe gefiltert werden ( > 6x15000)
Anschließend können max 5 matrizen je zeile übrigbleiben , die diese bedingung erfüllen...

Es können aber auch 6 sein, oder? In einem Array müssen aber alle Zeilen die gleiche Anzahl von Elementen besitzten, sonst wäre es kein Array.

Zitat:
also sollte ein array entstehen welches n x 5 ist

Fällt garantiert in jeder der n Zeilen ein Element weg?
In dem Fall könntest Du zum Schluss das Array einfach mit RESHAPE wieder in Form bringen.

Gruß, Jan
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.