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

Klausuraufgabe Matlab

 

pumba_1011
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 18.10.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2020, 16:20     Titel: Klausuraufgabe Matlab
  Antworten mit Zitat      
Hallo zusammen,

ich habe diesen Code bekommen mit folgender Aufgabe :
"Betrachten Sie folgenden Matlab-Codeschnipsel. Erläutern Sie fünf Stellen, an denen der Code bereits optimiert wurde (und wodurch), sowie zwei Stellen, an denen dies sinnvollerweise noch erfolgen sollte. "

ich habe leider nicht so wirklich Optimierungen gefunden, außer das nvals und vals vorallokiert sind. Ich würde mich sehr freuen wenn mir jemadn von euch bei der Aufgabe weiter helfen kann.

MfG

Code:
% vals_orig: ndim_orig=200000 Messwerte
% dt_orig: Datum und Uhrzeit dazu
% nvals_orig: Zahlen von 1:ndim_orig

nagg=4000; ndim=ndim_orig/nagg
nvals=zeros(ndim,1);vals=zeros(ndim,1);
for n=1:ndim
     dt(n)=dt_orig(nagg*n);
     nvals(n)=nvals_orig(nagg*n);
     m=nagg*(n-1);
     vals(n)=sum(vals_orig(m+1:m+nagg));
end

pdegree=20;
[p,S,mu] = polyfit(nvals,vals,pdegree);
intvals= polyval(p,nvals,S,mu);
plot(dt,intvals)

figure
hold on
plot(dt,vals,'b') % blaue Kurve
plot(dt,intvals,'m') % lilaKurve
plot(dt,vals-intvals,'r') % rote Kurve
hold off

for n=1:ndim
     diffvals(n,1) = vals(n)-intvals(n);
end

figure
plot(sort(100*abs(diffvals/vals)))
 
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.10.2020, 17:40     Titel:
  Antworten mit Zitat      
Hallo,

man kann noch versuchen, die beiden for-Schleifen zu umgehen.
Bei der zweiten ist das sehr einfach, bei der ersten muss man etwas mehr Grips investieren.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
pumba_1011
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 18.10.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.10.2020, 15:46     Titel:
  Antworten mit Zitat      
Würde die zweite for schleife dann so aussehen, wenn ich sie umgehe ?
Code:

diffvals = diff(vals,intvals);
 


Gruß
Steffen
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.10.2020, 17:23     Titel:
  Antworten mit Zitat      
Hallo,

hast du es mal ausprobiert? Ich bezweifle, dass das so gehen wird. Mein Ansatz wäre:

Code:
diffvals = vals - intvals;


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.