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

Erzeugung einer Matrix, die die Fakultätswerte 1-n! enthäl

 

MDT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.11.2015, 21:10     Titel: Erzeugung einer Matrix, die die Fakultätswerte 1-n! enthäl
  Antworten mit Zitat      
Ich bin zurzeit im Erstsemester in einem Ingenieurs-Studiengang und habe folgende Aufgabe vor mir liegen:

Erstellen Sie ein MATLAB-Programm zur Erzeugung einer Matrix fac, die die Fakultätswerte 1 ... n! enthält (n soll eine wählbare natürliche Zahl sein). Nutzen Sie zur Erstellung der Matrix eine for-Schleife und als Rechenoperation lediglich die Multiplikation.

Das Problem ist nun, dass ich keine Ahnung habe, wie ich die oben genannte Matrix fac mit Hilfe einer for-schleife erstellen soll und diese dann auch noch die Fakultätswerte enthalten soll.

Bin für Lösungsvorschläge sehr dankbar, möchte aber nicht die Lösung selber haben!

MfG


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 14.11.2015, 21:32     Titel:
  Antworten mit Zitat      
Zitat:
Bin für Lösungsvorschläge sehr dankbar, möchte aber nicht die Lösung selber haben!
dann fang doch mal an und stell dann konkrete fragen. jeder eintrag ergiet sich ja aus dem vorherigen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
MDT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.11.2015, 21:50     Titel:
  Antworten mit Zitat      
Gut, wie kann ich in Matlab den Wert mit einer Fakultät ausgeben? Das würde mir schon deutlich weiterhelfen.

Bsp.

b=3! scheint ja nicht zu funktionieren
 
Harald
Forum-Meister

Forum-Meister


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

mit factorial .

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 14.11.2015, 22:18     Titel:
  Antworten mit Zitat      
wobei ich nicht denke das du den befehl benutzen sollst
Zitat:
. Nutzen Sie zur Erstellung der Matrix eine for-Schleife und als Rechenoperation lediglich die Multiplikation.
das problem ist das das so wenig code ist das es schwer ist einen tip zu geben ohne die lösung hinzuschreiben.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
MDT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.11.2015, 22:32     Titel:
  Antworten mit Zitat      
Also, die Aufgabe geht noch weiter mit Zahleneinschränkungen, welche aber relativ einfach sind.

Zbs. Geben sie ab 20 eine Warnung aus, oder unter 0 eine Fehlermedlung. Diese Befehle sind mit If,else und disp relativ leicht zu lösen.

Mein Problem ist eben, dass ich - trotz Skript - nicht auf den Ansatz komme.

Hatte sowas im Kopf zuerst.

Code:

n=n * (b+1)


Das Problem ist eben, dass nur "n" eine wählbare natürliche Zahl sein soll. Sonst müsste ich eben n und b definieren.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 14.11.2015, 22:44     Titel:
  Antworten mit Zitat      
Hallo MDT,
Code:
n=n * (b+1)

Ich kann nicht erraten, was "b" hier ist. Mir ist auch unklar, wieso "(b+1)" vorkommt. Wie wäre es, wenn Du den bisherigen Code postest und konkrete Fragen dazu stellst?

Fehlermeldungen sollten niemals per disp erfolgen, sondern grundsätzlich mit error . Es gibt nichts schlimmeres als Code, der im Falle eines Fehlers nur eine kleine Meldung ausgibt, ansonsten aber weiter läuft, so dass man leicht übersehen kann, dass ein ernstes Problem aufgetreten ist.

Um auf einen Ansatz zu kommen, kannst Du zunächst die Aufgabe von Hand lösen. Du startest mit der Frage: "Berechne die Fakultät von 4". Dann würdest Du dies tun:
Code:
Ergebnis = 1
Ergebnis = Ergebnis * 2
Ergebnis = Ergebnis * 3
Ergebnis = Ergebnis * 4

Nun soll das Ergebnis in einer Matrix (um genau zu sein wohl ein Vektor) gespeichert werden. Das funktioniert mit einer FOR-Schleife.
Code:
Ergebnis = zeros(1, 4);  % Speicherplatz reservieren
for k = 1:4
  Ergebnis(k) = ...
end

Nun muss man das noch ein wenig anpassen. Vielleicht sollte man zunächst das erste Element auf 1 setzen. Und dann könnte "Ergebnis(k) = Ergebnis(k-1) * ?" hilfreich sein. Für k=1 wird das aber einen Fehler erzeugen. Den kannst Du aber umgehen.

Viel erfolg, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
MDT

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.11.2015, 22:58     Titel:
  Antworten mit Zitat      
Jan S hat Folgendes geschrieben:
Hallo MDT,
Code:
n=n * (b+1)

Ich kann nicht erraten, was "b" hier ist. Mir ist auch unklar, wieso "(b+1)" vorkommt. Wie wäre es, wenn Du den bisherigen Code postest und konkrete Fragen dazu stellst?

Fehlermeldungen sollten niemals per disp erfolgen, sondern grundsätzlich mit error . Es gibt nichts schlimmeres als Code, der im Falle eines Fehlers nur eine kleine Meldung ausgibt, ansonsten aber weiter läuft, so dass man leicht übersehen kann, dass ein ernstes Problem aufgetreten ist.


Das kann ich dir leicht beantworten. Und zwar sind das unsere ersten Matlab-Stunden, wie gesagt Erstsemester, und wir dürfen/sollen solche Befehle noch mit Disp ausgeben. Ich will dir gar nicht widersprechen, haben aber nur die Grund-Basics bis jetzt gehabt und deswegen ist es auch "noch" erlaubt.

Weiterhin danke für diesen Ansatz. Ich schaue mal wie er mir weiterhilft!

b war gedacht als 2.te variable. Sozusagen damit ich mit 2 Variablen meine Fakultät definiere, welches aber leider nicht gestattet ist.

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