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

Funktionenanwendung

 

Tidu2k
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 28.04.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.05.2019, 21:08     Titel: Funktionenanwendung
  Antworten mit Zitat      
Hallo!

Ich komme mit MatLab eigentlich ziemlich gut zurecht. Ich weiß so ziemlich immer was in den Aufgaben gefordert wird und kann dies auch meist gut umsetzen.

KURZES BRIEFING:

Allerdings komme ich im aktuellen Übungsblatt nicht so gut weiter
Die Aufgabe lautet:



Die hw5.m Datei ist diese:
Code:
function []=lab3_2()
N = 100000;
 
k = randnr(N);
 
alpha = [ 0.85  -0.04;
          0.2    0.23;
          -0.15  0.26;
          0       0 ];
 
beta = [0.04   0.85;
       -0.26   0.22;
        0.28   0.24;
        0      0.16];
 
gamma = [1.6 1.6 0.44 0];
 
 
% your stuff goes here
 
 
 
end
 
%%%%%%%%%%%%%%%%%%%%%%%%%%
% input:  integer number N
% output: vector v containing weighted random integers
%         1 to 4
function [v] = randnr(N)
 
    v = ones(1,N);
 
    for i=1:N
        r = rand();
        if ( (r >0.85) & (r<0.92) )
             v(i) = 2;
        elseif ( (r>0.92) & (r<0.99) )
             v(i) = 3;
        elseif (r>0.99)
             v(i) = 4;
        end
    end
 
end
 
%%%%%%%%%%%%%%%%%%


- Ich sehe, dass die obere Funktion auf die untere Funktion randnr(N) zugreift.
- Ich verstehe bei der ersten Funktion den Syntax nicht genau. Dort steht ein "[ ]" und anschließend "lab3_2()". Kann mir das jemand etwas genauer erklären?

Zum eigentlichen Lösungsansatz habe ich bisher folgendes (ohne es testen zu können, da ich nicht weiß wwelche Funktion aufgerufen werden soll...):

Code:

(...)
% your stuff goes here
 
Points = zeros(N,2);
Points(1,1) = 0;
Points(1,2) = 0;
 
for i=1:N-1
    Points(i+1,1) = alpha(k(i),1)*Points(i,1)+beta(k(i),1)*Points(i,2)    
    Points(i+1,2) = alpha(k(i),2)*Points(i,1)+beta(k(i),2)*Points(i,2)+gamma(k(i));
end
(...)
 


Könnte mir jemand helfen : )??
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.433
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.05.2019, 10:28     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Kann mir das jemand etwas genauer erklären?

Die Funktion hat keine Ein- oder Ausgabeargumente.

Eigentlich scheint nur noch ein Plot der Spalten von Points gegeneinander zu fehlen?

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

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 28.04.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2019, 20:04     Titel:
  Antworten mit Zitat      
Danke für deine Antwort! Das dachte ich mir, danke. Testweise habe ich

Zitat:
plot(Points(:,1),Points(:,2))


in die Funktion eingesetzt. Allerdings passiert nichts wenn ich auf "Run" drücke. Wenn ich die Plot-Funktion ausserhalb der Funktion definere, erscheint die Fehlermeldung das "Points" nicht definiert sei.

Hat jemand eine Idee wie ich es Plotten kann??

Danke hat sich erledigt. Das Problem bestand darin das ich am Anfang clc; und clear all; geschrieben habe. Warum es daran scheiterte bleibt mir ein rätsel...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.433
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.05.2019, 20:24     Titel:
  Antworten mit Zitat      
Hallo,

dass nicht passiert, wäre ungewöhnlich. Ist das Plot-Fenster vielleicht im Hintergrund? Oder das Command Window versteckt und dort eine Fehlermeldung?

Zudem noch den letzten Satz aus der Angabe berücksichtigen, also einen Marker wählen.

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

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 28.04.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2019, 20:31     Titel:
  Antworten mit Zitat      
Danke für deine Hilfe!

Hab die Aufgabe bereits gelöst (mit Markern im Plot). Es passiert tatsächlich nichts wenn in Zeile 1 und 2 folgendes steht

Zitat:
clear all;
clc;


Man könnte nicht mal die Funktion lab3_2 im Commandwindows aufrufen, da dann gesagt wird das diese Funktion oder Variable nicht definiert sei.

Da ich "clear all;" und "clc;" in bisher jeder Aufgabe eingefügt habe, habe ich dies nicht als Fehlerquelle betrachten können und überlegte studen woran es liegen mag...

Gibt es einen Grund warum "clear all;" und "clc;" einen so großen Einfluss auf diesen Aufgabentyp haben?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.433
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.05.2019, 21:00     Titel:
  Antworten mit Zitat      
Hallo,

wenn du die Befehle in eine Funktion schreibst, dann werden erst mal die Eingabeargumente gelöscht. Das ist nicht sinnvoll.

Es sollte aber dann dennoch eine Fehlermeldung geben, dass die Variable nicht definiert ist.

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