2017-05-02 11 views
1

simulinkモデルで私はmatlab関数ブロックを持っています。関数内では、コード生成と互換性のある方法でオブジェクトの配列を作成したいと考えています。 1がここで答えに生成可能なmatlab関数のオブジェクト配列

私の質問は似ていますConstruct an array of objects in MATLAB

問題は一部、「コード生成との互換性」です。

私はrepmat MathWorks社のMATLABリターンでそれをやろう:

オブジェクトの配列は、コード生成のためにサポートされていません。

私は私が見るオブジェクトの配列でそれをやろう:

再帰呼び出しが許可されていません。関数 'dummyClass.dummyClass' が再帰呼び出しに参加しました。

私は実行コードの下に見つけてください:

Embedded 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は将来のバージョンでこの機能を導入するかもしれませんが、現在はありません。

関連する問題