Error: Index exceeds array dimensions. Index value 2 exceeds valid range [1-1] of array a.

5 次查看(过去 30 天)
Hello All, I am converting matlab script to C++.
Here is a test function which is similar to my project. When i try to generate C code using Matlab coder it is throwing index exceeds its valid range. What is the meaning of this error. Could anyone guide me how to fix this, please.
function [a]=test()
% a=repmat(struct('in1',zeros(1,5),'in2',ones(1,5)),1,5);
years = 1950:10:1990;
service = 10:10:30;
wage = [150.697 199.592 187.625
179.323 195.072 250.287
203.212 179.092 322.767
226.505 153.706 426.730
249.633 120.281 598.243];
for i = 1:5
a(i).in1=interp2(service,years,wage,15,1975);
a(i).in2=interp2(service,years,wage,15,1970);
end
  5 个评论
Jan
Jan 2021-4-8
What happes if you pre-allocate the struct array a? You show some outcommented code already. Or:
a = struct('in1', cell(1,5), 'in2', cell(1,5));
Naga Manoj Kumar Lakkoju
Yes, it is showing size mismatch error. I will post it here. For this error we have to say something like
coder.varsize('a.in1')
coder.varsize('a.in2')
yes, Now it is working fine.
May I ask you why you have used cell instead of zeros or ones.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB Coder 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by