Verfasst am: 05.08.2024, 10:04
Titel: Winddaten von cm/sec in Beaufort umwandeln
Moin,
ich habe eine Wetterstation in Betrieb und die Daten werden sauber übermittelt.
Da ich noch neu in der Materie bin hoffe ich von Euch Tips darüber bekommen kann wie ich die umrechnen und anzeigen lassen kann.
Nach meiner Suche hab ich in unter analyzis App in der Zeile analyzedData = ;
folgendes eingegeben:
% umrechnung von cm/s in beaufort.
if wind_speed_cm<2.1
beaufort = 0;
elseif wind_speed_cm/s < 15.1
beaufort = 1:
usw bis
end
Wo genau muß dieser Code falls der richtig ist eingesetzt werden ?
Besten Dank
Thomas
spontan würde ich zu folgendem als Ansatz tendieren:
Code:
% Umrechnung von m/s in Beaufort.
wind_speed_ms = rand(10,1).*40;
bf_edges = [00.21.53.35.47.910.713.817.120.724.428.432.6100]; % der Wert 100 ist ausgedacht, als "obere Grenze" für die "open-end" Windstärke 12
bf_values = 0:12;
beaufort = discretize(wind_speed_ms, bf_edges, bf_values);
disp([wind_speed_ms,bf])
Den Code könntest du als Funktion speichern und dann kannst du diese einfach da aufrufen, wo du die Beaufort-Windstärke statt der cm/s-Werte haben willst.
Gruß
Steve
PS: Bitte am besten ein funktionierendes Beispiel posten (unter Verwendung der Code-Umgebung), dann kann dir schneller geholfen werden.
_________________
Tach auch,
aber mit der Antwort bin ich jetzt ein wenig überfordert.
Bitte gebt mir doch eine step by step Anleitung, damit ich weiß wo ich was einzutragen habe.
Besten Dank
Thomas
das mag nun wie blöde Antworten wirken, besser geht es aber mit den zur Verfügung stehenden Informationen nicht.
was du eintragen musst:
Die Zeilen, die steve dir geschrieben hat. Da du kein komplettes Code-Beispiel gepostet hast, hat steve Beispieldaten generiert. Diese kannst du weglassen, ebenso den disp-Befehl. Statt des von steve verwendeten Variablennamen musst du den in deiner Anwendung verwenden, z.B. dann
Code:
% Skalierung mit 100, wenn du tatsächlich cm/s statt m/s hast.
bf_edges = 100*[00.21.53.35.47.910.713.817.120.724.428.432.6100]; % der Wert 100 ist ausgedacht, als "obere Grenze" für die "open-end" Windstärke 12
wo du es eintragen musst:
An der Stelle, an der die Umrechnung ausgeführt werden soll. Da du kein komplettes Code-Beispiel gepostet hast, kann man dir keine bessere Antwort geben.
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 ;)
Tach auch Zusammen,
hier ist der Code aus chatgpd. Mehr habe ich nicht.
2. Ich komme einfach nicht klar mit dem wo ich was einzusetzen haben. Weder mit diesem Code noch mit dem code aus der 1. Antwort. Mein Wissen ist dazu einfach noch zu gering.
% Kanal- und API-Schlüssel
channelID = 123456; % Ersetzen Sie dies durch Ihre Kanal-ID
readAPIKey = 'abc123'; % Ersetzen Sie dies durch Ihren Lese-API-Schlüssel
writeAPIKey = 'def456'; % Ersetzen Sie dies durch Ihren Schreib-API-Schlüssel
Vorschlag wäre, das längliche if durch discretize zu ersetzen, also:
Code:
% Kanal- und API-Schlüssel
channelID = 123456; % Ersetzen Sie dies durch Ihre Kanal-ID
readAPIKey = 'abc123'; % Ersetzen Sie dies durch Ihren Lese-API-Schlüssel
writeAPIKey = 'def456'; % Ersetzen Sie dies durch Ihren Schreib-API-Schlüssel
% Umrechnung von cm/s in die Beaufort-Skala % Skalierung mit 100, wenn du tatsächlich cm/s statt m/s hast.
bf_edges = 100*[00.21.53.35.47.910.713.817.120.724.428.432.6100]; % der Wert 100 ist ausgedacht, als "obere Grenze" für die "open-end" Windstärke 12
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 ;)
Moin,
wenn ich den Code von mir eingebe und zwar nach dem Semikolon
in der Zeile
analyzedData = ; % Umrechnen von cm/sec in Beaufort.
Dann erhalte ich diese Fehler Meldung:
Error in /users/mss.system.xxfxv/Umrechnung von cm/s in beaufort Line: 31 Column: 16
Invalid expression. Check for missing or extra characters.
eine solche Zeile enthält dein Code doch gar nicht? Wenn der Code eine solche Zeile enthält, dann ja: zwischen = und ; fehlt augenscheinlich was.
Solltest du deine Datei "Umrechnung von cm/s in beaufort.m" genannt haben, dann ist dies das Problem: ein Dateiname darf keine Leer- oder Sonderzeichen beinhalten. Darauf wird beim Speichern an sich auch hingewiesen.
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 ;)
als Ergänzung zu Harald: Der Code von dir oben scheint nicht der Code zu sein, der die Fehlermeldung ausgibt. Zeile 31 ist eine Zeile der langen If-Kette und da ist kein Fehler zu sehen.
Und nochmal meine Bitte: Spricht irgendetwas dagegen die Code-Umgebung zu nutzen?
Über dem Eingabefeld steht ja extra:
Zitat:
Bitte den Code mit Hilfe des
Code
-Buttons einfügen."
Moin,
Harald ich würde gerne deinen Code kopieren, da ich es nicht anders hin bekomme schreibe ich diesen einfach mal ab und teste.
Kann also dauern.
So einfach wie bei anderen Foren mit Copy und paste funktioniert es bei mir leider nicht.
Grüße
Thomas
Moin,
da es mit dem copy und paste bei mir nicht so funktioniert wollte ich das ganze auf der custom Seite in das Code Feld eintragen.
Dazu tauchen 2 Fragen auf:
Wie bekomme ich die kurzen geraden Anführungszeichen auf der Tastatur, oder muß ich eine eckige Klammer nutzen.?
Mit was sind NumPoints gemeint?
Danke
Thomas
Moin
ich wollte um es mir auch begreiflich zu machen mit der Matlab Akademie in die Materie einarbeiten.
Ich bin dabei schon an der ersten Aufgabe gescheitert.
Also für Euch, wenn ich keine richtige didaktische Anleitung erhalte, oder jemand der es mir von Anfang an richtig zeigt bin ich hier raus und belasse es so wie es ist.
Grüße
Thomas
So einfach wie bei anderen Foren mit Copy und paste funktioniert es bei mir leider nicht.
Keine Ahnung, woran das bei dir liegt. Bei mir (Windows 10, Chrome) war das nie ein Problem.
Zitat:
Ich bin dabei schon an der ersten Aufgabe gescheitert.
Meines Wissens gibt es da bei jeder Aufgabe einen Button, sich die Lösung anzeigen zu lassen. Dann versteht man diese Aufgabe hoffentlich und kann sich der nächsten zuwenden, bei der es hoffentlich besser klappt.
Zitat:
auf der custom Seite in das Code Feld
Bzgl. MATLAB ist mir keine "custom Seite" bekannt. Wenn du eine andere Umgebung nutzt, bitte dazuschreiben.
Zitat:
Wie bekomme ich die kurzen geraden Anführungszeichen auf der Tastatur
Auf meiner Tastatur Shift + # (neben der Enter-Taste).
Zitat:
oder muß ich eine eckige Klammer nutzen.?
Das kommt darauf an, was du gerade eingibst. Ich verstehe auch offen gesagt nicht, wie sich die Frage stellen kann, wenn man nur Code abschreibt.
Zitat:
Mit was sind NumPoints gemeint?
Aus der Doku:
Zitat:
NumPoints — Number of data points
positive numeric scalar
Number of data points to extract, specified as a name-value pair consisting of 'NumPoints' and a numeric value. The number of points or rows of data is counted from the time the command is issued. The ThingSpeak server limits the number of points returned to a maximum of 8000.
Zitat:
Also für Euch, wenn ich keine richtige didaktische Anleitung erhalte, oder jemand der es mir von Anfang an richtig zeigt
Sowohl steve als auch ich sind sehr bemüht, dir zu helfen. Ehrlich gesagt ist es mir auch lieber, wenn eine Frage kommt, ich eine Antwort gebe und das erledigt ist als dass es etliche Male hin- und hergeht. Leider kann ich das nicht alleine beeinflussen, sondern bin da auch auf den Fragesteller angewiesen.
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 ;)
Moin,
nachdem ich endlich heraus gefunden habe wie ich den Code im Editor einige Einträge farblich hervorheben kann.
Ihr hättet mir sagen können das ich die ' doppelt schreiben muß damit die dann Magenta werden.
Dies hat mich 3 std Arbeit zusätzlich gekostet.
Herzlichen Dank dafür.
So und nun zu dieser Fehlermeldung nachdem der code im Editor geschrieben wurde,
habe ich jeden Buchstaben und jede Zahl einzeln verglichen ich finde den Fehler nicht.
File: /users/mss.system.gkcbl/Custom (no starter code) 2 Line: 18 Column: 36
Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.
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.