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

Koeffizientenmatrix ohne Schleife darstellen

 

w1zy
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 05.04.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.04.2011, 15:18     Titel: Koeffizientenmatrix ohne Schleife darstellen
  Antworten mit Zitat      
Hallo gomatlab-Gemeinde,

ich bin neu hier und habe keinen Beitrag entdeckt, der mir helfen könnte, folgendes:

Ai,k = 1/(i+k-1) für i,k=1,....,n

folglich müsste die Matrix so aussehen
An=
1 1/2 1/3,....,1/n
1/2 1/3 1/4,....,1/(n+1)
. . . .
. . . .
. . . .
1/n.................,1/(2n-1)


dazu soll ich nun eine Datei blatt1.m mit einer Matlab-Funktion function[A,x,d]=blatt1(n) anlegen, die die Matrix An = A vektorisiert (ohne Schleifen) anlegt.

Hat irgendjemand eine Ahnung, wie ich das Problem lösen kann? Bin schon am verzweifeln.

mfg

w1zy[/code]
Private Nachricht senden Benutzer-Profile anzeigen


Bernd Schmitt
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 25.01.11
Wohnort: Nürnberg
Version: ---
     Beitrag Verfasst am: 05.04.2011, 15:24     Titel:
  Antworten mit Zitat      
Hallo,

wieso soll das ohne Schleifen gehen? Wenn du mehrere Elemente behandelst, braucht du immer eine Schleife und wenn du einen fertigen Matlabbefehl benutzt, dann benutzt der mit Sicherheit auch eine Schleife... Was sind denn die Hintergründe? Verstehe ich noch nicht so ganz...

Gruß,
Bernd
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
w1zy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 05.04.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.04.2011, 15:28     Titel:
  Antworten mit Zitat      
Hallo,

thanks für die schnelle Antwort.

In der Aufgabenstellung wird speziell betont, dass es ohne Schleifen möglich ist. Ist es das?

Und wenn man möglichst wenige Schleifen, aber keinen vorgefertigten Befehl benützt, wie würde es dann aussehen?

mfg

w1zy
Private Nachricht senden Benutzer-Profile anzeigen
 
Bernd Schmitt
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 25.01.11
Wohnort: Nürnberg
Version: ---
     Beitrag Verfasst am: 05.04.2011, 15:58     Titel:
  Antworten mit Zitat      
Bin auf der Arbeit und habe keine Zeit für nen Code, sorry...

Aber: Ohne Schleife oder speziellem Matlabbefehl (der sicherlich auch Schleifen benutzt) nicht möglich, da du ja die Elemente adressieren musst, (meine Erfahrung, wenns jemand besser weis: ich lerne gerne dazu).

Konkret: Du hast zwei Laufvariablen (i,k) also braucht du für jede eine Schleife. Alaso für jede Zeile i, alle Elemente k bearbeiten.

Vektorisierung: Jede Zeile der Matrix nach einander in einen Vektor ablegen =>
1 2 3
A= 4 5 6 => A_vec= 1 2 3 4 5 6 7 8 9.
7 8 9

Das kannst du in der gleichen Schleife dann mitmachen. Und dort kannst du auch eine Berechnung mit unterbringen...

Weis nicht ob die das so jetzt hilft...

Schau dir mal das noch an:
http://lionel.kr.hs-niederrhein.de/.....BM/vektorisierung-4up.pdf

Hier scheint es ohne Schleife zu gehen, doch die benutzten Befehle von Matlab brauchen auch Schleifen...

Grüße
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.04.2011, 16:21     Titel:
  Antworten mit Zitat      
Code:

A=ones(n);
A=cumsum(A)+cumsum(A)'-1;
A=1./A
 
 
w1zy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 05.04.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2011, 17:43     Titel:
  Antworten mit Zitat      
Herzlichsten Dank, habs hinbekommen.

lg

w1zy
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: 06.04.2011, 19:51     Titel: Re: Koeffizientenmatrix ohne Schleife darstellen
  Antworten mit Zitat      
Hallo w1zy,

Ich glaube, das hier ist am schnellsten:
Code:
A = buffer(1.0 ./ (1:n)), n, n-1, 'nodelay');
A = A(:, 1:n);

Gruß, Jan
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 - 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.