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

Anfängerfrage! Ergebnisse in Matrix ausgeben

 

xxotwoxx
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 05.06.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2019, 14:03     Titel: Anfängerfrage! Ergebnisse in Matrix ausgeben
  Antworten mit Zitat      
Hallo Leute, ich bin absoluter Anfänger in Matlab und soll folgendes machem:
Ich soll einen Code zur Lösung der n-ten Wurzel einer komplexen Zahl programmieren, soweit so gut, es funktioniert auch alles. Die Ergebnisse möchte ich in einer Matrix ausgeben lassen, der normale fprintf Befehl vermischt bei mir leider die Ergebnisse seltsamerweise untereinander (Matlab berechnet alles richtig, wenn ich die Ergebnisse mit fprintf ausgeben lasse, treten aber seltsame Vermischung der real- und Imaginärteile auf.
Kann mir jemand bei dem Problem helfen?
Danke im Vorraus und hier der Code:

Code:
clc
clear

n = input("n= ");
z = input("z= ");

r=sqrt(real(z)^2+imag(z)^2);
phi=atan(imag(z)/real(z));
k=[0:n-1]

Z=nthroot(r,n)*(cos((phi+k.*2*pi)/n)+i*sin((phi+k.*2*pi)/n));

for k=0:k
   fprintf('%f%+fi\n', real(Z), imag(Z));
end


[EDITDE, Jan, Bitte Code-Umgebung verwenden - Danke!]
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: 07.06.2019, 15:35     Titel: Re: Anfängerfrage! Ergebnisse in Matrix ausgeben
  Antworten mit Zitat      
Hallo xxotwoxx,

Ich kann nicht wissen, was du für "seltsam" hältst und was du stattdessen erwartest.
Darum erst mal ein paar Kommentare zum Code:
Code:
k = 0:n-1;

Hier braucht man keine eckigen Klammern. [ ] ist der Matlab-Operator zum Aneinanderhängen von Arrays. 0:n-1ist aber bereits ein Vektor, und ihn mit nichts anderem zusammenzuhängen ist verschwendete Zeit.
Code:

Das sieht verwirrend aus. k geht von 0 bis k, wobei k vorher ein Vektor war. Was ist der Zweck dieser Schelife? Der Inhalt hängt gar nicht vom Schleifenzähler ab:
Code:
  fprintf('%f%+fi\n', real(Z), imag(Z));

Dann kann man die Schleife auch weglassen, oder?
Wie wäre:
Code:

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