.NET method with "out" keyword as an input

Hello!
I've run into a tricky situation when trying to work with a .NET library inside MATLAB. Normally, it appears that when a .NET method has a parameter with the out keyword, MATLAB makes it a parameter that is returned instead.
However, I have run into an unusual scenario where a function requires me to input a value for a parameter with the out keyword. I cannot find a public repository for the library in question; However, I've included below an example of how the .NET function in question, ZernikeLSF, is called in a C# script:
After going through the MATLAB documentation on its .NET integration, I have been unable to find a way to input a value for this parameter, zernike_order -- I can only seem to have it be returned. Is there a method of inputting a value here with MATLAB? If not, are there any good workarounds?

1 Kommentar

Image Analyst
Image Analyst am 23 Aug. 2024
How are you calling this function in your MATLAB code?

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 23 Aug. 2024
Bearbeitet: Walter Roberson am 23 Aug. 2024

0 Stimmen

C# apparently makes it illegal to read from an "out" parameter before writing to it; https://stackoverflow.com/questions/7716641/using-the-out-keyword-in-c-sharp
If the statements in the above post are correct, then it is not possible to use an "out" parameter to pass in a value.
Although it is legal to pass in an initialized value, the receiving routine cannot read from that value before writing to the variable.
So... the situation you describe apparently cannot occur.

2 Kommentare

JMB
JMB am 23 Aug. 2024
Well... this certainly complicates things for me. The library I am using definitely states that you input a parameter there, and the C code it is based on does something pretty similar. If C# makes it illegal to read from an "out" parameter, then something wacky is happening. I'll reach out to the person who wrote the library in question to get more information.
I appreciate your quick response! This was extremely helpful.
Walter Roberson
Walter Roberson am 23 Aug. 2024
For two-way communication, you would use a ref variable instead of an out variable.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Produkte

Version

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by