how to solve Index exceeds the number of array elements (1).
82 views (last 30 days)
Show older comments
Hi guys, I'm writing a code for simulink model auto generation . But when i run code, it popup this error . How can i solve this problem.
Index exceeds the number of array elements (1).
Error in Create_topology (line 42)
hmp(k) = add_line(mdl,htp{k-1}.RConn(2),htp{k}.LConn(1),'autorouting','on');
open_system('Coil_Architecture');
mdl = 'Coil_Architecture/Coil';
h = find_system(mdl,'FindAll','on','Name','Coil');
Num_Turns = 100 ;
set(h,'Num_Turns',num2str(Num_Turns));
ht = zeros(Num_Turns,1);
hmp = zeros(Num_Turns,1);
htp = cell(Num_Turns,1);
for k = 1:Num_Turns
nk = num2str(k);
% add turn
ht(k) = add_block('Unit_Turn/Turn_1', [mdl,'/Turn_',nk]);
posc = get(ht(k),'Position');
set(ht(k),'Position',posc + [0 30*(k-1) 0 30*(k-1)]);
% get port handles
htp{k} = get(ht(k),'PortHandles');
% connect turn to turn
if k > 1
hmp(k) = add_line(mdl,htp{k-1}.RConn(2),htp{k}.LConn(1),'autorouting','on');
end
end
Accepted Answer
David K.
on 23 Jul 2019
What this error is saying is that at some point in that line you are exceeding the number of elements in an array. The (1) is indicating that the actual number of elements in the array is 1.
My guess is that htp{k-1}.Rconn(2) may only have a length of 1.
If it is not that, right before the line display each of your variables and see that they are what you expect them to be.
Hope this helps
More Answers (0)
See Also
Categories
Find more on Simulink Functions in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!