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

Hilfe für meine ersten Matlab-Versuche

 

Vanadis
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2016, 19:57     Titel: Hilfe für meine ersten Matlab-Versuche
  Antworten mit Zitat      
Hallo!

Kann mir jemand vielleicht helfen, ich muss ein Projekt mit Matlab lösen, hab jedoch leider noch nie damit zu tun gehabt :/ und ich pfusch da grad was herum

Die Produktion von einer Insel betrug im Jahr 1980 noch 100 Tonnen und sinkt seitdem jedes Jahr um 10%. Stellen Sie diese Entwicklung graphisch dar.
Am einfachsten lässt sich diese Aufgabe mit einer Schleife lösen, die in jedem Zeitschritt die 10% der Produktion abzieht.

also bis jetzt hab ich

Code:

x=100
for i= 1:1:40
    y=x*(1-0.1)^i
end
 


aber wie plotte ich es, dass wirklich alle punkte auch aufgetragen werden? das klappt nicht so recht...

Alles Liebe,

Vanadis
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: 14.06.2016, 20:27     Titel:
  Antworten mit Zitat      
Hallo,

du überschreibst y in jeder Iteration.

Vorschlag:
Code:
y = zeros(1, 41);
y(1) = 100;
for i= 2:41
    y(i)=y(i-1)*(1-0.1);
end


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Vanadis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2016, 22:03     Titel:
  Antworten mit Zitat      
Ok vielen vielen Dank! Smile

Wenn man Hilfe hat, macht das richtig Spaß!!

Blöde Frage aber wie lernt man am besten Matlab, einfach learning by doing oder sollte ich mich doch zu erst mit dem theoretischen befasst machen?

Schönen Abend,
Vanadis
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.06.2016, 07:14     Titel:
  Antworten mit Zitat      
Es gibt hier wie in MATLAB Answers sehr viele Tipps zum MATLAB Lernen. Ich würde mit MATLAB Onramp anfangen. Das ist direkt in MATLAB integiert.

Toolstrip -> Help -> MATLAB Academy -> MATLAB Onramp

MATLAB Onramp ist kostenlos. Die anderen Inhalte sind aber - zum Beispiel bei Hochschulen - z. T. auch kostenlos verfügbar.

Darüber hinaus ist halt die Frage nach dem Vorwissen. Wenn jemand schon programmieren kann ist MATLAB ein Klacks. Aber wenn man halt keine Programmiererfahrung hat... Ich hoffe mal bei diesem Studiengang gibt es Angebote und klar Erwartungen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Vanadis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2016, 07:25     Titel: Beispiel
  Antworten mit Zitat      
Hallo liebe Communitty!

Ich bräuchte nochmals bitte eure Hilfe!

Ein Bakterium stirbt, wenn es drei Tage in Folge unter 20 Grad hat. In einem sehr einfachen Klimamodell hat jeden Tag zufällig zwischen 18 und 28 Grad.

Simulieren Sie ein Jahr eines solchen Temperaturverlaufs und schreiben Sie ein Programm, das automatisch solche Kalteperioden findet.

Füllen sie zuerst einen Vektor mit 365 zufälligen Werten zwischen 18 und 28. Danach soll in einer Schleife überprüft werden, ob die Wachstumsbedingung erfüllt ist oder nicht.


Hört sich ja eigentlich nicht schwer an, aber an der Umsetzung der Schleife happert es bei mir.

Vielen Dank schon mal für eure Hilfe!!!


PS Danke Andreas für deine Tipps!
Private Nachricht senden Benutzer-Profile anzeigen
 
gs
Forum-Century

Forum-Century


Beiträge: 172
Anmeldedatum: 17.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2016, 07:50     Titel:
  Antworten mit Zitat      
Hi, meinst du sowas?

Code:
klimavektor = [randi([18,28],365,1), zeros(365,1)];
[zk, sk] = size(klimavektor);
bakterium = 0;
tot = 3;
for k=1:1:zk
    if klimavektor(k,1) >=20
        bakterium = bakterium + 1;
        tot = 3;
    else
        tot = tot - 1;
        if tot <= 0
            bakterium = 0;
        end
    end
    klimavektor(k,2) = bakterium;
end

plot(klimavektor)
axis([0 365 0 40])



Grüße gs

klima.m
 Beschreibung:

Download
 Dateiname:  klima.m
 Dateigröße:  392 Bytes
 Heruntergeladen:  467 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Vanadis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2016, 10:02     Titel:
  Antworten mit Zitat      
Danke für deine schnelle Antwort, aber kannst du mir noch erklären wieso du bakterium=0 und tot=3 gesetzt hast, blick da generell nicht ganz durch :/

also ich hab es bis dahin mal selbergeschafft(auch wenn ichs viel umständlicher gemacht hab), aber ich hab keine Ahnung wie ich bei der if-Bedinung weitermach, der Plan war, dass mir direkt alle Werte gezeigt werden die einerseits leben und andererseits tot sind und das am besten mit dem jeweiligen Tag

in weiterer Folge (sollte ich das mal haben) würde ich gerne diese Punkte in einem Plot veranschaulichen, so dass man sieht an welchen Tagen die Temperatur kritisch ist

vielen Dank schon mal für jegliche Hilfe Smile

Code:
Temp=randi([18,28],365,1);

Tage=0;
for i=1:365
    Tage(i)=i;
end

Tage=Tage';

Klimavektor=[Tage,Temp]

plot (Tage,Temp)

axis([0 365 0 40])


if Klimavektor(:,2)>=20
   disp('leben')
else
    disp('tot')
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
gs
Forum-Century

Forum-Century


Beiträge: 172
Anmeldedatum: 17.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2016, 11:55     Titel:
  Antworten mit Zitat      
Hi,
deine Variante sieht sehr umständlich aus:

hier mal deine Variante in kürzerer Form:
Code:
Klimavektor = [[1:365]' randi([18,28],365,1)];
plot(Klimavektor(:,1),Klimavektor(:,2));
axis([0 365 0 40]);

if Klimavektor(:,2)>=20
    disp('leben')
else
    disp('tot')
end


Ich finde deine Variante aber auch nicht sauber, gut meine ist bestimmt auch noch verbesserungsfähig...


So jetzt mal zu meiner Variante:
Ich sage mir, folgendes: Jeder Tag, der OK ist, wird ein Counter (bakterium) erhöht.
Ist ein Tag nicht OK (<20) dann wird ein zweiter Counter runtergezählt (tot). Wenn dieser Counter auf 0 ist, ist der Bakterienstamm tot (und bleibt auch solange tot) bis wieder ein positives Ereignis eintritt, dann wird der tot-Counter wieder auf 3 gesetzt und die Bakterien können sich wieder vermehren (beginnend bei 0).

So habe ich also deine Aufgabe mit den 3 Tagen delay abgefangen, da die Bakterien ja erst nach 3 Tagen sterben.
Zusätzlich sieht man an den Bakterien-Counter, welche lineare Vermehrung da wäre.

Ich hoffe ich konnte dir weiterhelfen.

Grüße gs
Private Nachricht senden Benutzer-Profile anzeigen
 
Vanadis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2016, 12:30     Titel:
  Antworten mit Zitat      
Jetzt hab ich es verstanden Very Happy
Vielen Dank, dass du mir da geholfen hast !!!!!

Alles Liebe,
Vanadis
Private Nachricht senden Benutzer-Profile anzeigen
 
Vanadis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2016, 21:00     Titel:
  Antworten mit Zitat      
So schon wieder eine Frage Embarassed

Beispiel lautet:

Berechnen Sie anhand der Wachstumskurve die Größe nach 3 Monaten.
Das Wachstum ist in kg/Tag gegeben, die Zeitauflösung ist ebenfalls Tage. Um die Gesamtgröße zu berechnen ist ein numerisches Integral notwendig.


was ist der Unterschied zwischen sum(daten1) und wenn ich trapz(Tage,wachstum) nehme? ist das nicht irgendwie das selbe dann ?

Danke schon mal Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
gs
Forum-Century

Forum-Century


Beiträge: 172
Anmeldedatum: 17.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2016, 06:03     Titel:
  Antworten mit Zitat      
Ich denke mal jetzt musst du mal mit deinen Können glänzen, jetzt bist du gefragt. Ich denke mal wenn du jetzt mal versuchst deine eigenen Lösungen zu bringen, ist das effektiver.

Du kannst aber gern deinen Code posten, wir helfen dir dann, wenn es klemmt (sofern es uns möglich ist).
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 18.06.2016, 12:23     Titel:
  Antworten mit Zitat      
Hallo Vanadis,

Bitte öffne für eine neue Frage immer einen neuen Thread. Danke!

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Vanadis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2016, 19:52     Titel:
  Antworten mit Zitat      
Alles klar, danke Smile

Alles Liebe,
Vanadis
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.