Verfasst am: 31.05.2019, 21:51
Titel: Vektoren aus Schleife abspeichern
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!
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
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 ;)
Forcemonk
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 03.06.2019, 12:49
Titel:
Danke! Das sieht sehr gut aus. Werde es direkt ausprobieren.
Forcemonk
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 05.06.2019, 09:51
Titel:
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 6sind.
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
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
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.