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

Vektoren aus Schleife abspeichern

 

Forcemonk

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.05.2019, 21:51     Titel: Vektoren aus Schleife abspeichern
  Antworten mit Zitat      
Hallo,

ich muss 9 Vektoren aus einer While Schleife in einer 3x3 Matrix abspeichern. Kann mir wer helfen? Es geht um die Vektoren x, yc und ys am Ende meines Codes.
Das Muster der Matrix soll folgendes sein:
x aus 1. Durchlauf | yc aus 1. Durchlauf | ya aus 1. Durchlauf
x aus 2. Durchlauf | .... | ....
... | ... | ...
Würde mich über Hilfe freuen! Smile


Code:
Zaehler=0
while (Zaehler<3)
    Zaehler=Zaehler+1;

n=input('Schrittweite pi/? (zwischen 3 und 6): ')
if (n<3 | n>6)
    while (n<3 | n>6)
        fprintf('Der angegebene Wert ist nicht im vorgesehenen Rahmen. ')
        n=input('Bitte geben Sie eine Schrittweite zwischen 3 und 6 ein: ')
    end
    alpha=[0:pi/n:2*pi];
else
    alpha=[0:pi/n:2*pi];
end


alpha=[0:pi/n:2*pi];
si=sin(alpha);
co=cos(alpha);
alphaGrad=(360/(2*pi))*alpha;
M=[alphaGrad; si; co]';


x=[M(:,1)];
ys=[M(:,2)];
yc=[M(:,3)];

end


[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.435
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.06.2019, 15:42     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
ich muss 9 Vektoren aus einer While Schleife in einer 3x3 Matrix abspeichern

Das ist nicht mit einer Matrix möglich, sondern lediglich mit einem 3x3-Cell Array.

Initialisierung:
Code:


Zuweisung in einzelne Cells:
Code:
C{row, col} = ...


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
 
Forcemonk

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2019, 12:49     Titel:
  Antworten mit Zitat      
Danke! Das sieht sehr gut aus. Werde es direkt ausprobieren. Smile
 
Forcemonk

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2019, 09:51     Titel:
  Antworten mit Zitat      
Ich poste hier nochmal mein fertiges Skript (sicherlich nicht perfekt, funktioniert aber).
Es geht, um die Berechnung von sin und cos für verschiedene Schrittweiten zwischen pi/3 und pi/6. Die Ausgabe erfolgt sowohl graphisch als auch tabellarisch im Command Window:

Code:
clc
close
%Die Funktion des Skriptes ist es, die Sinus und Kosinus Werte für
%bestimmte Winkel auszugeben und graphisch darzustellen.
Name='Maximilian Kerstan';

Zaehler=0; %Zähler für die 3 Durchgänge
while (Zaehler<3) %bis 3 zählen
    Zaehler=Zaehler+1;
%Erste Aufgabe:
n=input('Schrittweite pi/? (zwischen 3 und 6): '); %Abfrage nach Schrittweite
if (n<3 || n>6) %Bedingung n muss in den Grenzen von 3 bis 6 sein
    while (n<3 || n>6) %ist das nicht der Fall, kommt eine erneute Abfrage
        n=input('Bitte geben Sie eine Schrittweite zwischen 3 und 6 ein: ');
    end
    alpha=0:pi/n:2*pi; %wurden 3 Schrittweiten angegeben, wird ein Vektor ausgegeben
else
    alpha=0:pi/n:2*pi; %Das ist der Fall, falls alle 3 Eingaben in den Grenzen von 3 bis 6 sind.
end

%Zweite Aufgabe:
alpha=0:pi/n:2*pi; %Überflüssig, einfach für Übersicht
si=sin(alpha); %sin vom Vektor
co=cos(alpha); %cos vom Vektor
alphaGrad=(360/(2*pi))*alpha; %Umrechnung in Grad
M=[alphaGrad; si; co]'; %Erstellung einer Matrix

%Dritte Aufgabe:
x=M(:,1); %Auslesen der 1. Spalte für x
ys=round(M(:,2),2); %Auslesen der 2. Spalte für ys und Werte auf 2 Nachkommastellen runden
yc=round(M(:,3),2); %Auslesen der 3. Spalte für yc und Werte auf 2 Nachkommastellen runden

%Vierte Aufgabe:
database(Zaehler).Winkel=x; %Erstellung der Datenbase für die verschiedenene Durchläufe
database(Zaehler).Sinus=ys; %s.o.
database(Zaehler).Kosinus=yc; %s.o.

%Fünfte Aufgabe:
subplot(3,1,Zaehler); % Plot mit 3 Zeilen, 1 Spalte und dem Zaehler
plot(database(Zaehler).Winkel, database(Zaehler).Sinus, 'g-') % sin-Graph plotten in grün
hold on %hold on Funktion
plot(database(Zaehler).Winkel,database(Zaehler).Kosinus,'b-') % cos-Graph plotten in blau
plot(database(Zaehler).Winkel, database(Zaehler).Sinus, 'rX') % X-Markierungen für Sin in rot
title(['Dies ist der ',num2str(Zaehler),'.te Graph']) % Titel mit Zaehler
xlabel('Winkel im Gradmaß') % Beschriftung x-Achse
ylabel('Sinus, Kosinus') %Beschriftung y-Achse
legend('Sinus','Kosinus') %Legende ohne rotes X

%Sechste Aufgabe:
disp(['Die berechneten Winkel und Funktionswerte bezüglich deiner ',num2str(Zaehler),'. Eingabe lauten:']) %Ausgabe eines Satzes über der Tabellenausgabe
T = struct2table(database(Zaehler)) % Ausgabe der Datenbank als Tabelle im Command Window für die jeweilige Eingabe

end


[EDITED, Jan, Nochmal: Bitte Code-Umgebung verwenden, Danke!]
 
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.