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

Spaltenvektoren miteinander verrechnen

 

Mike_666
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 20.05.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2021, 15:52     Titel: Spaltenvektoren miteinander verrechnen
  Antworten mit Zitat      
Hallo zusammen,

ich grüble seit einigen Stunden über etwas, das sich auch durch Recherche nicht hat lösen lassen und für jemanden mit etwas mehr Matlaberfahrung vermutlich fix gemacht ist, weshalb ich mich hoffnlungsvoll an euch wende.

Um das ganze überschaubarer zu machen, habe ich das mal aufs Wesentliche runtergebrochen.

Ich möchte zwei Vektoren erstellen. Der erste soll von Wert 1 bis n gehen.

Der zweite Vektor soll eine Formel beinhalten. Sagen wir jetzt einfach mal f=a*b*c*d, wobei a,b,c allgemeine Konstanten sind. d soll sich allerdings auf den Zeileninhalt des ersten Vektors beziehen.

Das ganze soll in etwa so sein, wie wenn man in Excell eine Spalte mit Werten hat und in der danebenliegenden Zeile eine Formel eingibt, diese auf die spalte daneben bezieht und mit der runterziehfunktion n neue Zeilen generiert.

Code:
a=1
b=2
c=3

n=10

x=[1:n]'
y=[a*b*c*x(1),a*b*c*x(2),a*b*c*x(3),a*b*c*x(4),a*b*c*x(5),a*b*c*x(6),a*b*c*x(7),a*b*c*x(8),a*b*c*x(9),a*b*c*x(10)]'
%y=[a*b*c*x(1):a*b*c*x(n)]

A=[x,y]


der x Vektor ist wie gewünscht 10 zeilig. Unelegant ist halt, wie ich den y Vektor gelöst habe. Da habe ich stumpf jeden einzelnen Bezug von Hand eingegeben (x(1)...). Gerne hätte ich das jetzt so, dass ich, wie in der auskommentiereten Zeile schon versucht wurde, eine "von bis" Lösung habe. Warum es mit x(n) nicht funktioniert habe ich nachvollziehen können, allerdings fehlt mir der Ansatz, wie ich es richtig mache.

Ich hoffe ihr könnt mir da helfen Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.05.2021, 16:06     Titel:
  Antworten mit Zitat      
Hallo,

vermutlich war es zu einfach:
Code:
y = a*b*c*x;


Ich darf da auch auf das MATLAB Onramp hinweisen.

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
 
Mike_666
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 20.05.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2021, 16:17     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank für die schnelle Hilfe. Mein Problem hat sich damit gelöst. MATLAB Onramp schaue ich mir jetzt auch mal an. Vielen Dank für den Tipp.

LG Mike
Private Nachricht senden Benutzer-Profile anzeigen
 
Mike_666
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 20.05.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2021, 21:16     Titel:
  Antworten mit Zitat      
Ich schon wieder Confused

Leider hat sich die vereinfachte Lösung nicht auf den Realfall übertragen lassen, weshalb ich noch mal den Code zeige:

Code:

n=120000
a=0.1285
b=22
c=10
d=1.7
e=66

x=[0:100:n]'
y=((b*c*d)/(2*a))*(d/4*x)-sqrt((e)/(x^3))


Die Fehlermeldung besagt, dass das Potenzieren mit ^3 stört. Die angebotene Abhilfe (x.^3) führt zu einer 121x121 Matrix, was defintiv nicht mein Ziel ist. So komme ich wieder zu der Ursprünglichen Frage von heute Nachmittag Confused
Ich hoffe du kannst mich in der Hinsicht noch einmal erleuchten.
Vielen Dank im Voraus
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

du musst konsequent komponentenweise Operationen verwenden, also auch bei .* und ./, sobald Vektoren miteinander verknüpft werden oder durch einen Vektor geteilt wird.

Code:
y=((b*c*d)/(2*a))*(d/4*x)-sqrt((e)./(x.^3))


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
 
Mike_666
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 20.05.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2021, 07:27     Titel:
  Antworten mit Zitat      
Hallo und vielen Dank noch einmal. Es hat wie unten aufgeführt funktioniert. Habe jetzt auch deutlich besser Verstanden wie Matlab arbeitet Smile

Code:

n=120000
a=0.1285
b=21
c=9.81
d=1.71
e=46

x=[0:1000:n]'
y=[((b*c*d)/(2*a)) .*((d./(4.*x))- sqrt((e)./(x.^3)))]

A=[x,y]
 
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.