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

Lastwechselzählung aus Kraftvektor/lokale Extrema

 

flyingernst
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 13.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2010, 11:16     Titel: Lastwechselzählung aus Kraftvektor/lokale Extrema
  Antworten mit Zitat      
Hallo, ich habe einen Spaltenvektor mit den Zahlen Werten

a
b
c
d
e
f
g
h
...etc

diese Werte stellen lokale Extrempunkte einer Funktion dar. Es geht um Kräfte. Ich möchte nun die Lastwechsel (a nach b, b nach c, c nach da, usw.) auflisten, jeder Lastwechsel in eine Zeile eines neuen vektors:

a nach b
b nach c
c nach d
usw.

das ganze würde ich danach dann gerne mit "tabulate" sortieren und aufzählen lassen. Durch die große menge an lokale Extremas ist es sehr wahrscheinlich dass mehrere lastwechsel mehrfach vorkommen.

Da ich nicht weis, wie ich zB "a nach b" in eine Zelle einer Matrix eintragen kann, dachte ich dass ich nicht die zahlen "a nach b" eintrage, sondern den Satz(string) "a nach b" und tabulate dann dieses sortieren lasse, allerdings weis ich auch nicht ob tabulate mit strings umgehen kann.

Kann mir jemand helfen? Ich könnte das dringlichst für meine Abschlussarbeit gebrauchen.

Danke, Gruß Michael
Private Nachricht senden Benutzer-Profile anzeigen


flyingernst
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 13.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2010, 11:44     Titel:
  Antworten mit Zitat      
mittlerweile habe ich den Kraftvektor zu einer Matrix gemacht wo die extrempunkte von bis in 2 Spalten stehen,

also

spalte 1 spalte 2
a b
b c
c d
d e

usw.

nur die Differenz zwischen spalte 1 und 2 berechnen zu lassen und diese mit tab sortieren und zählen zu lassen bringts nicht, ich brauche zumindest noch den startwert des lastwechsels mit drin, damit es keine fehlzuordnung gibt (lastwechsel 5-4kN ist das gleiche wie 8-7kN), jedoch bei unterschiedlichem Startpunkt, was für mich aber elementar ist
Private Nachricht senden Benutzer-Profile anzeigen
 
flyingernst
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 13.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.07.2010, 10:43     Titel:
  Antworten mit Zitat      
habe mich dem problem mal wieder gewidmet und den Weg der Substitution gewählt.
Vorgehensweise:
- Zeitverlauf (lokale Extrempunkte) in einem Spaltenvektor
- in einen temporären Vektor kopiert, erste stelle gelöscht, letzte Stelle mit null besetzt
- diesen Vektor beim zeitverlauf in die 2. Spalte, nun habe ich im Zeitverlauf eine Spalte "von" und eine zweite Spalte "nach" was damit quasi die Lastwechsel beschreibt
- um die Lastwechsel sortieren und auszählen zu können muss man in ein Format kommen womit "tabulate.m" umgehen kann.
Also habe ich "von-bis" zu einen Spaltenvektor aus komplexen zahlen gemacht, wobei der realwert "von" war und der imaginäre Wert "bis"
- dies mit "tabulate" sortieren und Auszählen
- neue Matrix aufmachen und dort die tabulierten werte wieder aus real und imaginär anteil jeweils in eine Spalte setzen und dahinter dann die Häufigkeit aus dem tabulate ergebnis.

So kann man nun Zählen wie oft es welche Lastwechsel gibt (bei meinem Kräftebeispiel)

etwas unglücklicher Zufallsvektor, aber immerhin etwas:

Code:
genau=1;
a=10;
b=-12;
r(:,1) = a + (b-a).*rand(1000,1);
temp=r;
temp(1,:)=[];
temp(length(temp)+1,1)=0;
r(:,2)=temp(:,1);
r=round2(r,genau);
clear i;
clear k:
for k=1:1:length(r)
    r_komplex(k,1)=r(k,1)+r(k,2)*i;
end;
r_komplextab=tabulate(r_komplex(:,1));
r_tab(:,1)=real(r_komplextab(:,1));
r_tab(:,2)=imag(r_komplextab(:,1));
r_tab(:,3)=r_tab(:,2)-r_tab(:,1);
r_tab(:,4)=real(r_komplextab(:,2));

vonvektor(:,1)=min(r_tab(:,1)):1/(10^genau):max(r_tab(:,1));
bisvektor(:,1)=min(r_tab(:,2)):1/(10^genau):max(r_tab(:,2));

LWmatrix=zeros(length(vonvektor),length(bisvektor));
for k=1:1:length(r_tab)
    vonzeile=find(r_tab(k,1)==vonvektor(:,1));
    bisspalte=find(r_tab(k,2)==bisvektor(:,1));
    LWmatrix(vonzeile,bisspalte)=r_tab(k,4);
end;

mesh(vonvektor(:,1),bisvektor(:,1),LWmatrix);
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.