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

Pareto filtering

 

ThKo26
Forum-Century

Forum-Century


Beiträge: 184
Anmeldedatum: 21.09.17
Wohnort: ---
Version: 2015b
     Beitrag Verfasst am: 12.01.2018, 14:01     Titel: Pareto filtering
  Antworten mit Zitat      
Hallo zusammen,

ich beschäftige mich gerade mit pareto front.

https://de.mathworks.com/matlabcent.....ge/50477-pareto-filtering

ich habe folgendes Beispiel gefunden.

frage mich, was bsxfun im folgendne Code bedeutet:

Code:
indices = sum( bsxfun( @ge, data_RH(i,:), data_RH ), 2 ) == dim;
 


ich erhalte daraufhin folgende Fehlermeldung.

Code:
Undefined function 'bsxfun' for input arguments of type 'table'.


Leider finde ich auf der Seite keine bsxfun Funktion.

Danke für die hilfe.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen


ThKo26
Themenstarter

Forum-Century

Forum-Century


Beiträge: 184
Anmeldedatum: 21.09.17
Wohnort: ---
Version: 2015b
     Beitrag Verfasst am: 13.01.2018, 12:32     Titel:
  Antworten mit Zitat      
Hallo zusammen,

ich habe das Problem gelöst.

1. Schritt: "table" habe ich zu "double" konvertiert.

somit kommt der Fehler mit "bsxfun" nicht mehr.

Ein funktionierendes Beispiel:

matlabcode:
Code:
g = [111.875236508333    -10.2278356249603
114.907282513333    -8.30548887257906
111.706071216667    -8.99627895365343
107.497545875000    -12.2306027801776
107.053314843333    -13.7203813832390
104.721485138333    -11.8051968365588
113.499689741667    -11.8826189033978
117.425902685000    -11.3327020077343
118.538975395000    -10.5900208594224
110.006344478333    -12.9994370087711
102.264001845000    -14.9350497304982
109.852025348333    -13.6248234538007
110.411869050000    -12.1468414125083
112.487299600000    -9.15155032053141
110.006344478333    -12.9994370087711
102.768033981667    -12.7260392604693
104.524729411667    -13.5347537612274
111.874378205000    -11.2210770250671
107.716422400000    -11.1702004324505
111.706071216667    -8.99627895365343
110.185331343333    -11.5468935333632
104.535731635000    -11.7941982253487
105.397023518333    -13.9463387365242
116.249910991667    -10.9495470896606
116.029663721667    -10.2980967306585
111.775997163333    -11.2072137997256
105.415007275000    -11.4919522177574
111.706071216667    -8.99627895365343];

f = sortrows(f,1);

[ p, idxs] = paretofunction( f );

figure
plot(f(:,1),f(:,2),'+')
hold on
plot(p(:,1),p(:,2),'o')


function code:
Code:
function[ p, idxs] = paretofunction( p )
[i, dim] = size(p);
idxs = [1 : i]';
while i >= 1
    old_size = size(p,1);
    indices = sum( bsxfun( @ge, p(i,:), p ), 2 ) == dim;
    indices(i) = false;
    p(indices,:) = [];
    idxs(indices) = [];
    i = i - 1 - (old_size - size(p,1)) + sum(indices(i:end));
end


Nun zur Frage: wie kommt man für die Variable i = 3 ??
danke für die Hilfe.

Grüße
Thomas
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 - 2024 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.