MATLAB Answers

Output argument 'check_equal' is not assigned on some execution paths

1 view (last 30 days)
This is the main function
it is called from function: check_equal_case.m
function check_equal=check_equal_case(x,y)
if (x==y)
final_seq = ones(1,y)
compilation is correct in matlab script.
when try to generate c ++ code, matlab throws error : Output argument 'check_equal' is not assigned on some execution paths
please help.

Accepted Answer

Darshan Ramakant Bhat
Darshan Ramakant Bhat on 10 Jan 2020
This is because output variable should have a value in each execution branch. Otherwise MATLAB Coder compiler will not be able to determine the value of the output when that branch is taken.
One potential soution for this issue is to initialize the output variable at the beginning of the function :
function check_equal=check_equal_case(x,y)
check_equal = false;
if (x==y)
final_seq = ones(1,y)
If the output variable is changing it's size in some of the branches, then you can make use of coder.varsize :
function [x,y] = usevarsize(n)
x = 1;
y = size(x);
if n > 10
x = 1:10;
Hope this will help you.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!