|
karl-heinz |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.02.2008, 17:49
Titel: Befehlssuche
|
|
Hallo,
ich soll eine 7x7 Matrix erstellen mit der Formel: A(m,n)=m²*(n-4)
delta_m=1
mend=7
m=[1:delta_m:mend]
delta_n=1
nend=7
n=[1:delta_n:nend]
for M(m,n)=[m^2*(n-4)]
M(m,n)
end
Ich hab bisher das gemacht, aber das funktioniert nicht.
Nun weiß ich nicht mehr weiter.
|
|
|
|
|
keloid |
Forum-Century
|
|
Beiträge: 216
|
|
|
|
Anmeldedatum: 04.10.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 7.5.0.342 (R2007b)
|
|
|
|
|
|
Verfasst am: 26.02.2008, 07:27
Titel:
|
|
Über Schleifen lässt sich das Problem so lösen:
Jetzt wird in der For-Schleife die Matrix berechnet und durch das "M" am Ende wird sie Dir noch angezeigt.
Allerdings gibt es wahrscheinlich eine elegantere Lösung, da hoffe ich aber auf andere Forenteilnehmer ;)
|
|
|
Bijick |
Ehrenmitglied
|
|
Beiträge: 914
|
|
|
|
Anmeldedatum: 18.06.07
|
|
|
|
Wohnort: Nürnberg
|
|
|
|
Version: R2006b, R2008b
|
|
|
|
|
|
Verfasst am: 26.02.2008, 10:43
Titel:
|
|
Hallo Ihr,
in Vektorschreibweise sieht das so aus:
Man bildet einen Spalten- und einen Zeilenvektor. Das Produkt ist eine Matrix mit den gewünschten Einträgen.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
nschlange |
Ehrenmitglied
|
|
Beiträge: 1.320
|
|
|
|
Anmeldedatum: 06.09.07
|
|
|
|
Wohnort: NRW
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 26.02.2008, 11:10
Titel:
|
|
Von mir auch noch ein Vorschlag:
Vielleicht machen wir einen most obfuscated code contest
daraus.
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
|
|
|
karl-heinz |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.02.2008, 16:11
Titel:
|
|
Vielen Dank für eure Antworten.Bin da noch gar nicht drauf gekommen. Da könnte man echt nen contest draus machen...
Die Lösung mit den Schleifen geht genau in die Richtung, wie ich es mir vorgestellt hab. werd aber auch noch die anderen lösungen verwenden können.
gruß karl-heinz
|
|
|
keloid |
Forum-Century
|
|
Beiträge: 216
|
|
|
|
Anmeldedatum: 04.10.07
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 7.5.0.342 (R2007b)
|
|
|
|
|
|
Verfasst am: 26.02.2008, 16:39
Titel:
|
|
Schleifen in Matlab sind böse, das musst Du Dir merken :)
Alles, was in Matlab ohne Schleifen gelöst werden kann, sollte ohne Schleifen gelöst werden, da die benötigte Rechenzeit teilweise drastisch sinken kann.
|
|
|
karl-heinz |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.02.2008, 17:08
Titel:
|
|
werd ich mir merken
hauptsache die sache funktioniert erst mal. bin noch nicht so vertraut mit dem programm...
|
|
|
karl-heinz |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.02.2008, 18:37
Titel:
|
|
hab noch ein problem: wie stelle ich einen vektor a2 als funktion des vektors a1 dar?
desweiteren muss ich diese dann als graph darstellen. dass dies mit hilfe des befehls "plot" geschieht leuchtet ein, nur wie genau man den code schreibt...
gibts hier irgendwo ein nachschlagewerk oder befehlserklärung (außer help bei matlab), dass ich nicht immer mit so einfachen fragen kommen muss...
vielen dank nochmal.
|
|
|
nschlange |
Ehrenmitglied
|
|
Beiträge: 1.320
|
|
|
|
Anmeldedatum: 06.09.07
|
|
|
|
Wohnort: NRW
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 26.02.2008, 23:01
Titel:
|
|
keloid hat Folgendes geschrieben: |
Schleifen in Matlab sind böse, das musst Du Dir merken
Alles, was in Matlab ohne Schleifen gelöst werden kann, sollte ohne Schleifen gelöst werden, da die benötigte Rechenzeit teilweise drastisch sinken kann. |
In diesem Fall ist glaube ich meine Schleifen-lose Lösung dennoch langsamer.
Bijicks Lösung dürfte die schnellste und eleganteste sein.
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
|
|
|
Bijick |
Ehrenmitglied
|
|
Beiträge: 914
|
|
|
|
Anmeldedatum: 18.06.07
|
|
|
|
Wohnort: Nürnberg
|
|
|
|
Version: R2006b, R2008b
|
|
|
|
|
|
Verfasst am: 27.02.2008, 13:32
Titel:
|
|
Hallo karl-heinz,
wenn a1 und a2 gleich lange Vektoren sind, schreibt man
Wenn nicht, müsstest du mal genauer beschreiben, inwiefern a2 "eine Funktion von a1" ist.
Als deutschsprachige Einführung kann ich folgendes Skript mit Aufgaben sehr empfehlen: http://homepages.fh-regensburg.de/~wah39067/Matlab
Es ist zwar ziemlich alt (Matlab 5.3), aber die Grundlagen sind gleich geblieben. Wenn es Probleme mit komplexeren Funktionen gibt (fzero beispielsweise), kannst Du Dich ja hier melden.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
karl-heinz |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.02.2008, 16:15
Titel:
|
|
die vektoren sollen dargestellt werden wie zum beispiel f(x).ich suche den befehl, dass jedem wert von a1 ein wert von a2 zugeordnet wird.
als matlab-neuling ist es schwierig für die einfachsten mathematischen gegebenheiten den passenden befehl zu finden.
und die funktion a2(a1) soll dann als graph dargstellt werden.
x-wert ist dann ein wert von a1 mit dem dazugehörigen y-wert von a2.
danke,
gruß
|
|
|
Bijick |
Ehrenmitglied
|
|
Beiträge: 914
|
|
|
|
Anmeldedatum: 18.06.07
|
|
|
|
Wohnort: Nürnberg
|
|
|
|
Version: R2006b, R2008b
|
|
|
|
|
|
Verfasst am: 28.02.2008, 09:55
Titel:
|
|
Hallo karl-heinz,
ja, diese Schwierigkeiten hatte ich am Anfang auch. In Matlab ist es so: Liegen a1 und a2 schon vor, dann ist eine Zuordnung nicht möglich. Man muss als Benutzer dann wissen, wie sich die beiden Vektoren zueinander verhalten.
Soll a2 aus a1 nach einer Funktionsvorschrift berechnet werden, kann man die Vorschrift in einer for-Schleife auf jedes Element von a1 sukzessive anwenden, oder -eleganter und effizienter- die Vorschrift auf den ganzen Vektor a1 anwenden. Zum Beispiel:
Der Benutzer muss sich dann im Klaren darüber sein, dass a1 die "x-Werte" und a2 die Funktionswerte enthält. Eine Abhängigkeit wie f(x) kann so nicht ausgedrückt werden.
Allerdings geht das über Matlab-Funktionen. In diesem Beispiel müsste man eine Funktion Quadrat.m schreiben:
Diese kann man dann anwenden:
Sinnvoll ist eine solche Auslagerung eher bei komplexeren Funktionen, aber es kann auch der Übersicht dienen.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
Karl-Heinz |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.02.2008, 16:03
Titel:
|
|
Danke für die ausführliche Erklärung,hat mir weitergeholfen.
Sollte ich wieder Schwierigkeiten haben, melde ich mich.
Gruß
|
|
|
Karl-Heinz |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.02.2008, 18:51
Titel:
|
|
|
|
|
hab wieder ein problem. ich möchte eine wertetabelle. funktioniert soweit ganz gut- bei delta_t=1. wenn ich aber delta_t=0.1 eingebe, gibt er mir in der tabelle immer zwei kommastellen zu klein aus(siehe unten). woran liegt das?
delta_t= .1
tend=20
t=[0:delta_t:tend]
a1=4
a2=8
y1=1/2*a1*t.^2
y2=1/2*a2*t.^2
y3=y2-y1
%plot(t,y1,'r',t,y2,t,'m',y3,'g')
grid on
t_y1_y2_y3=[t' y1' y2' y3']
t_y1_y2_y3 =
1.0e+003 *
0 0 0 0
0.0001 0.0000 0.0000 0.0000
0.0002 0.0001 0.0002 0.0001
0.0003 0.0002 0.0004 0.0002
0.0004 0.0003 0.0006 0.0003
0.0005 0.0005 0.0010 0.0005
0.0006 0.0007 0.0014 0.0007
0.0007 0.0010 0.0020 0.0010
0.0008 0.0013 0.0026 0.0013
0.0009 0.0016 0.0032 0.0016
0.0010 0.0020 0.0040 0.0020
0.0011 0.0024 0.0048 0.0024
0.0012 0.0029 0.0058 0.0029
0.0013 0.0034 0.0068 0.0034
0.0014 0.0039 0.0078 0.0039
0.0015 0.0045 0.0090 0.0045
0.0016 0.0051 0.0102 0.0051
0.0017 0.0058 0.0116 0.0058
0.0018 0.0065 0.0130 0.0065
0.0019 0.0072 0.0144 0.0072
0.0020 0.0080 0.0160 0.0080
...usw
wie kann ich in einer gleichung nach einer variablen auflösen, wie hier im beispiel: y2-y1=600, t=?, d.h. nach welcher zeit ist y2 600m weiter?
danke,
gruß karl-heinz
|
|
|
Bijick |
Ehrenmitglied
|
|
Beiträge: 914
|
|
|
|
Anmeldedatum: 18.06.07
|
|
|
|
Wohnort: Nürnberg
|
|
|
|
Version: R2006b, R2008b
|
|
|
|
|
|
Verfasst am: 28.02.2008, 19:03
Titel:
|
|
Hallo Karl-Heinz,
beachte
Karl-Heinz hat Folgendes geschrieben: |
t_y1_y2_y3 =
1.0e+003 *
0 0 0 0
0.0001 0.0000 0.0000 0.0000
0.0002 0.0001 0.0002 0.0001
0.0003 0.0002 0.0004 0.0002
...usw
|
1.0e+003 bedeutet 1*10^3, also 1000. und 1000 * 0.0001 ist genau 0.1, wie erwartet. Der Faktor wird verwendet, weil bei t = 20 die Werte für die y schon ganz schön groß werden.
Zur zweiten Frage: Man könnte schreiben:
Gleichheit zu suchen, ist aus numerischer Sicht allerdings ungünstig (der Wert könnte ja auch 60.000000000000001 sein). Wenn man nur den ersten Index sucht, für den die Differenz mindestens 600 ist, kann man schreiben:
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|