2017-05-02 5 views
1

시뮬 링크 모델에는 matlab 함수 블록이 있습니다. 함수 내에서 코드 생성과 호환되는 방식으로 객체 배열을 만들고 싶습니다. 하나는 답이 여기에생성 가능한 MATLAB 함수의 객체 배열

내 질문은 비슷하다 Construct an array of objects in MATLAB

문제는 일부 "코드 생성과 호환"입니다.

나는 repmat matlab에 반환로 할 때 : 객체의

배열은 코드 생성이 지원되지 않습니다.

재귀 호출이 허용되지 않습니다

나는 객체의 배열을 나는 볼을 수행하려고합니다. 함수 'dummyClass.dummyClass' 은 재귀 호출에 참여했습니다.

코드를 검색 나는 실행

임베디드 MATLAB 기능

function y = fcn(u) 
%#codegen 
x = [1 2 3]; 
% %% repmat way 
% aa = dummyClass(x(1)); 
% aaArray = repmat(aa,1,3); 
%% array of objects 
aa = dummyClass(x); 

y = u; 

클래스 파일

classdef dummyClass  
    properties 
     value 
    end 

    methods 
     function obj = dummyClass(value) 
      %% array of objects 
      if nargin~=0 
       m = size(value,1); 
       n = size(value,2); 
       obj(m,n) = dummyClass; 
       for i = 1:m 
        for j = 1:n 
         obj(a,b).value = value(a,b); 
        end 
       end 
      end 
% %% repmat 
%    obj.value = value; 
     end 
    end 

end 

의 주석

답변

0

MATLAB R2017a부터 MATLAB Coder 또는 Simulink Coder를 사용하여 코드 생성과 호환되는 객체 배열을 만들 수있는 방법이 없습니다.

첫 번째 오류 메시지에 "arrays of objects are not supported for code generation"이 표시됩니다. 특정 방법으로 문제가 발생하지 않더라도 전혀 지원되지 않습니다.

MathWorks는 차후 버전에서이 기능을 소개 할 수 있지만 현재는 제공되지 않습니다.