How do I declare a variable non-automatically on Matlab?
2 次查看(过去 30 天)
显示 更早的评论
I'm trying to use Matlab coder to generate a C file from a Matlab code. However, when I build the project it doesn't recognize one of my local variables properly - it mistakes its class - giving the following error: "Undefined function or variable 'B'. The first assignment to a local variable determines its class." It was supposed to be a struct array, but it's recognized as an unknown class of size 1x1. I've tried to assign it as an array from the beggining as the first lines of my code are:
B(n,n).obs=0; %n is the array size
B(n,n).custo=0;
B(n,n).visitado=0;
Although it still does not work!
0 个评论
采纳的回答
Titus Edelhofer
2015-9-15
Hi Ricardo,
you can use struct and repmat to initialize your structure:
B = repmat( struct( ...
'obs', 0, ...
'custo', 0, ...
'visitado', 0), n, n);
Titus
0 个评论
更多回答(1 个)
dpb
2015-9-15
Don't have the coder to test, but how about
>> B=struct('obs',0,'cust',0,'visit',0)
B =
obs: 0
cust: 0
visit: 0
>> whos B
Name Size Bytes Class Attributes
B 1x1 396 struct
>>
Setting B(n,n) on LHS of above will generate a structure array of that size. Now whether the coder is capable-enough to implement structures you'll have to check the documentation to tell.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Structures 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!