The return value of the extrinsic function is a variable array, How can I access it?

3 views (last 30 days)
J = zeros(0,1);
coder.varsize(J);
coder.extrinsic('fast_union_sorted');
temp = fast_union_sorted(activeSet, I);
J = temp;
the size of the array temp is not fixed size;
Matlab will report error when executing " J = temp", such as
expression 'temp' is not of the correct size: expected [0x1] found [5x1].
How can I solve it?
Thanks!

Accepted Answer

Denis Gurchenkov
Denis Gurchenkov on 14 Jul 2016
After the call to fast_union_sorted(), read the size of the return value, and reallocate J to be of that size:
coder.varsize('J');
coder.extrinsic('fast_union_sorted');
temp = fast_union_sorted();
n = [0 0];
n = size(temp);
J = zeros(n);
J = temp;

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by