How to get all data from m-function?

6 Ansichten (letzte 30 Tage)
Lev Mihailov
Lev Mihailov am 10 Jun. 2021
Kommentiert: Stephen23 am 10 Jun. 2021
Hello! I created a function for reading dpv files, it contains many parameters that I receive. But in the example of creating a function, there is only one
function A=ReadDPV(fileName) % When reading a file, 102 values ​​come out
When I try to read with this function, I only get the value A
% X=A;
How to get all 102 values ​​that are read and counted in my function?

Akzeptierte Antwort

Max Heiken
Max Heiken am 10 Jun. 2021
Hello! The value A is the only one that gets output because that is what you specified in your function declaration. You could instead specify a list of all outputs:
function [A, A2, B, .., Z2] = ReadDPV(fileName)
But this has its own drawbacks, because you would also need to accept all those values when you call the function:
[A, A2, B, .., Z2] = ReadDPV(fileName);
A perhaps better solution would be to store all these values in one container. If they are of the same type, a vector would work; if you want to still reference them by their name, a struct comes to mind; otherwise a cell array. An example for the struct approach:
function contents = ReadDPV(fileName)
contents = struct();
And accessing them:
contents = ReadDPV(fileName);
A = contents.A;

Weitere Antworten (1)

Scott MacKenzie
Scott MacKenzie am 10 Jun. 2021
Bearbeitet: Scott MacKenzie am 10 Jun. 2021
Your function is defined to only return A (which is perhaps a scalar). To return multiples values, return them as elements in a vector and define your function accordingly:
function [A, A1, B, ... ] = ReadDPV(fileName)
A = ...
A1 = ...
Then, use your function thus:
[x, y, ...] = ReadDPV(...)
x will be A, y will be A1, and so on


Mehr zu Structures finden Sie in Help Center und File Exchange




Community Treasure Hunt

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

Start Hunting!

Translated by