Data is inferred as a variable size matrix, while its specified type is something else.

Let "x" and "y" be two variable-size vectors. now i have a variable named "z" which is defined as:
function z=func(input)
% some code here
% x,y are not input
z = sum(x.*y')/sum(x);
end
obviously "z" is a double variable. but when i send it as the output of the function i get this error:
Data 'z' (#32) is inferred as a variable size matrix, while its specified type is something else.
I guess Simulink assumes that "z" is variable-size too. I'm stuck at this point. any suggestions?

回答 (1 件)

Walter Roberson
Walter Roberson 2015 年 8 月 29 日
Before the final assignment to z, assign
z = 0;
This will tell Coder that the result is expected to be a scalar double.

3 件のコメント

Marie Behzadi
Marie Behzadi 2015 年 8 月 30 日
Thanks Walter for your suggestion. But it didn't work. The error is still the same.
Walter Roberson
Walter Roberson 2015 年 8 月 30 日
Did you specifically mark a data type for the output signal for the MATLAB Function Block ?
Marie Behzadi
Marie Behzadi 2015 年 8 月 30 日
編集済み: Marie Behzadi 2015 年 8 月 30 日
not specifically. I just assign it to zero at first. I guess it will consider it as a double value; and then the result of calculation is always a double value. It's not a even vector or matrix but the error refers to a variable-size assignment!!

サインインしてコメントする。

質問済み:

2015 年 8 月 29 日

編集済み:

2015 年 8 月 30 日

Community Treasure Hunt

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

Start Hunting!

Translated by