Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Fachkräfte:
Ingenieur (m/w) für den Bereich modellbasierte Embedded-Softwareentwicklung
Integration von Simulink-Modellen auf die Ziel-Hardware (mit TargetLink) sowie Durchführung von Softwaretests
cbb-Software GmbH - Stuttgart

Softwareentwickler (m/w) automatische Codegenerierung
Umsetzung, Neuprogrammierung und Weiterentwicklung in Simulink, TargetLink und C
EFS - Ingolstadt, Wolfsburg

Informatiker (m/w) für den Bereich Toolkette Embedded Software
Weiterentwicklung einer MATLAB- / Simulink-Toolkette
cbb-Software GmbH - Stuttgart

Ingenieur Qualitätssicherung (w/m) im Use Case Test
Erstellung und Erweiterung von Kundenszenarien aus dem Bereich des Tests und der Entwicklung von Steuergeräten
dSPACE GmbH - Paderborn

PreMaster MEMS pressure sensor development
You will define the characterization standards in collaboration with sensor experts and project managers
Robert Bosch GmbH - Reutlingen

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Wie pures Kokain für den Rechner

 

MatLabNooB
Forum-Guru

Forum-Guru


Beiträge: 262
Anmeldedatum: 27.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2010, 00:32     Titel: Wie pures Kokain für den Rechner
  Antworten mit Zitat      
Liebe Community, ich weiss, der Titel ist ein bisschen 'Catchy' Laughing

Ich hab mir gedacht, das was am Programmieren so spannend ist, ist ja, es führen tausend Wege nach Rom, was eben den Unterschied ausmacht ist doch, wie elegant ein Problem gelöst wurde, oder nicht?

Ich denk jeder, der schon länger mit MatLab arbeitet hat ein paar solche Zeilen über die er stolz ist? weil man lange Nächte dran getüftelt hat um die Berechnung möglichst effizient zu gestalten.

Wäre es daher nicht nett, wenn man hier mal ne Sammlung solcher Beispiele hätte?

Das könnte zB so aussehn:
1. Was war Aufgabe? Was sollte erreicht werden? kurze Erklärung
2. technische Lösung

ich will mal einen Anfang machen:

In je einem Vektor stehen die X und Y-Koordinaten eines sich bewegenden Punktes (fluoreszierendes Protein). zB:
Code:
x=[2, 4, 6, 1, 3]
y=[3, 2, 4, 5, 4]


In einem weiteren Vektor der Frame in dem die Koordinaten registriert wurden. zB.
Code:
f=[1, 2, 3, 4, 5]

nicht zwangsläufig kontinuierlich steigend, also auch mal Lücken möglich!

Nun sollten in einem ersten Schritt die Sprungdistanzen berechnet werden um hinterher mittlere Sprungdistanzen und daraus einen Diffusionskoeffizienten ableiten zu können.

Für die Sprungdistanzen heisst das:
einschrittig zweischrittig: dreischrittig: vierschrittig:
x1-x0 x2-x0 x3-x0 x4-x0
x2-x1 x3-x1 x4-x1
x3-x2 x4-x2
x4-x3

Zuerst hatte ich mir mit zwei Schleifen zu Helfen, dann konnte ich teils Vektoriesieren und hatte nur noch eine Schleife drin. Jetzt hab ichs endlich ohne Schleife realisiert Very Happy

und so sieht der Code aus:
Code:
i = repmat((1:numel(f))',1,numel(f));
% Index-Matrix
ia = nonzeros(tril(i,-1));
iz = i(logical(flipud(tril(ones(numel(f)),-1))));
% erstellt die nötigen Index-Vektoren
x_displacement = x(ia)-x(iz);
y_displacement = y(ia)-y(iz);
steplength = f(ia)-f(iz);

das ganze wird dann folgend weiterverarbeitet
Code:
square_displacement = x_displacement.^2 + y_displacement.^2;
mean_square_displacement = nonzeros(accumarray(steplength,...
        second_moment_displacement,[],@mean));
% delay = Zeitspanne zwischen zwei Frames
log_time = log(unique(steplength)*delay);
fit = robustfit(log_time,log(mean_square_displacement)
diffusion_constant = .25*exp(fit(1))
 

Ich denk sehr viel schneller kann man dies nicht mehr machen Question

Ich hoffe ich hab hiermit ein paar weitere dazu angespornt ihre Schmuckstücke auszupacken und mal zu zeigen, ich denk dabei kann man echt noch was lernen...

gruss Christian
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
.



goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2018 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.