Simulink Matlab Function - Using Cell Problem
이전 댓글 표시
I coded all functions in m file, its works clearly in normal file, But when I want to use Simulink there is a problem like:
Unable to determine that every element of 'l_manLinkMatSkewSymm{1}{:}' is assigned before this line.
I did not understand the problem. The problem is on line 4 from the end.
l_negativeLinkMatSkewSymm{k}{i,i}...
= -l_manLinkMatSkewSymm{k}{i,i};
Unable to determine that every element of 'l_manLinkMatSkewSymm{1}{:}' is assigned before this line. More informationFunction 'MATLAB Function1' (#63.1776.1804), line 77, column 16: "l_manLinkMatSkewSymm{k}{i,i}" Launch diagnostic report.
Component: MATLAB Function | Category: Coder error
Errors occurred during parsing of MATLAB function 'untitled/MATLAB Function1'
Component: MATLAB Function | Category: Coder error
Errors occurred during parsing of MATLAB function 'untitled/MATLAB Function1'
Component: Simulink | Category: Model error
% % % % % % % Matlab Function Codes Built in Simulink, Lauches here
function dotVarsLinkVars ...
= funFunc(Vc_loadVelVect)
skewSymm =@ (x)[0 -x(3) x(2); x(3) 0 -x(1); -x(2) x(1) 0];
p_maniNum = 2;
dof = cell(p_maniNum,1);
dof{1} = 7;
dof{2} = 5;
PHI_manPropMat = cell(p_maniNum,1);
for i = 1:p_maniNum
PHI_manPropMat{i} = cell(dof{i},dof{i});
end
for k = 1:p_maniNum
for i = 1:dof{k}
for j =1:dof{k}
PHI_manPropMat{k}{i,j} = zeros([6 6]);
end
end
end
% l_linkage Information Matrix
l_manLinkVect = cell(p_maniNum,1);
for i = 1:p_maniNum
l_manLinkVect{i} = cell(dof{i},1);
end
l_manLinkVect{1}{1,1} = [-4; 1; 0];
l_manLinkVect{1}{2,1} = [1; 0; 0];
l_manLinkVect{1}{3,1} = [0; 1; 0];
l_manLinkVect{1}{4,1} = [1; 0; 0];
l_manLinkVect{1}{5,1} = [1; 0; 0];
l_manLinkVect{1}{6,1} = [0; -1; 0];
l_manLinkVect{1}{7,1} = [1; 0; 0];
l_manLinkVect{2}{1,1} = [3.5; 2; 0];
l_manLinkVect{2}{2,1} = [-1; 0; 0];
l_manLinkVect{2}{3,1} = [-1; 0; 0];
l_manLinkVect{2}{4,1} = [0; -1; 0];
l_manLinkVect{2}{5,1} = [-1; 0; 0];
l_manLinkMatSkewSymm = cell(p_maniNum,1);
l_negativeLinkMatSkewSymm = cell(p_maniNum,1);
for k = 1:p_maniNum
l_manLinkMatSkewSymm{k} = cell(dof{k},dof{k});
l_negativeLinkMatSkewSymm{k} = cell(dof{k},dof{k});
for i =1:p_maniNum
l_manLinkMatSkewSymm{k}{i,i}...
= skewSymm(l_manLinkVect{k}{i,1});
l_negativeLinkMatSkewSymm{k}{i,i}...
= -l_manLinkMatSkewSymm{k}{i,i};
end
end
dotVarsLinkVars = l_manLinkMatSkewSymm{2}{1,1};
When I remove that line that have problem on it, system works fine.
답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Call Web Services from MATLAB Using HTTP에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!