|
|
Kollaps der "besselh"-Funktion bei großen Matrize |
|
LoKiaK |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.12.2016, 22:15
Titel: Kollaps der "besselh"-Funktion bei großen Matrize
|
 |
|
 |
|
Hallo,
ich verzeweifel bald, endlich habe ich die meisten bugs gefunden und behoben, da springt mich das nächste Problem an:
ich arbeite zuhause mit Matlab 2010a, wenn ich größere Datenmengen bearbeiten muss wechsel ich auf eine workstation, dort ist Matlab 2016 installiert. Nun möchte ich mit "besselh" eine Hankelfunktion berechnen, als Übergabeparameter erlaubt die 2010er-Version Vektoren (Zeilen- und Spaltenvektoren). Die 2016er-Version scheint das nicht zu erlauben, außerdem setzt sie quadratische Matrizen voraus (was bei der 2010er auch nicht der Fall war), in meinem Fall benötige ich aber Matrizen mit unterschiedlichen Dimensionen. Dadurch, dass offenichtlich Matrizen übergeben werden müssen (und nicht einfach Vektoren), wachsen die Datenmengen. In meinem Fall ist das nicht ganz unerhablich, weil meine Matrizen ca. (40000x30000) Einträge haben sollen. Die Datenmengen scheinen für die Funktion nicht handelbar, jedenfalls werden Fehlermeldungen ausgespuckt.
Stand einer von Euch schonmal vor demselben Problem und kann mit nun einen Ratschlag geben?
Gruß
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 22.12.2016, 22:33
Titel:
|
 |
Hallo,
besselh unterstützt für das dritte Argument Matrizen, und diese müssen nicht quadratisch sein - siehe Doku.
Bei Problemen bitte konkret den verwendeten Aufruf und die auftretende Fehlermeldung angeben. Für große Datenmengen bieten sich ab R2016b auch Tall Arrays an.
Grüße,
Harald
|
|
|
LoKiaK |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.12.2016, 23:58
Titel: Kollaps der "besselh"-Funktion bei großen Matrize
|
 |
n undk_r sind Vektoren,
Der Eintrag aus der 2010er-besselh-Version:
% If one input is a row vector and the other is a column vector, the
% result is a two-dimensional table of function values.
In der 2010er-Version funktioniert damit die Berechnung der Hankelfunktion, in der 2016er-Version wird folgende Fehlermeldung ausgespuckt:
"Error using besselh
NU and Z must be the same size or one must be a scalar."
Dann akzeptiert die neue Version keine Vektorangaben mehr, was ich ungünstig finde, aber nun gut. Du hast Recht @Harald, dass auch unterschiedliche Dimensionen verarbeitet werden. Was beim letzten Mal schief gelaufen ist, kann ich gerade nicht mehr nachvollziehen,
danke für die Hilfe,
Gruß
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 23.12.2016, 00:20
Titel:
|
 |
Hallo,
das Verhalten solltest du nachstellen können, indem du z.B. mit meshgrid zwei Matrizen erzeugst. Sollte das zu groß für den Speicher werden, entweder mit for-Schleife (am besten über Blöcke) oder Tall Arrays.
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|