Variable size class properties for C++ code export

조회 수: 4 (최근 30일)
Torsten Knüppel
Torsten Knüppel 2019년 7월 10일
댓글: Viet Nguyen 2020년 3월 10일
Dear all,
I would like to use a class as input to a function that is later exported to C++-code.
Something like:
classdef inputClass
properties
var(:, 1)
b = 0
end
end
Here var(:, 1) means, that I want var to be of variable size. However, as soon as I use var the coder complains about mismatching sizes, stating that var is of size 0x1. Can I somehow declare a class property to be of variable size? According to the page here, coder.varsize does not work.
Thanks in advance
Torsten
  댓글 수: 3
winkmal
winkmal 2019년 8월 14일
Which Matlab version are you on? I don't have Coder either, but this reminds me very much of a problem I had some time ago, which turned out to be a bug! This was in R2017b, so it should be fixed by now. Read here for details.
Viet Nguyen
Viet Nguyen 2020년 3월 10일
Did you end up getting this resolved? I am running into the same error.

댓글을 달려면 로그인하십시오.

답변 (1개)

Sayyed Ahmad
Sayyed Ahmad 2019년 7월 10일
The defination of var is wrong.
it's ok if you write
classdef inputClass
properties
var;
b = 0
end
methods
function o = inputClass(varargin)
if nargin == 2
o.var = varargin{1};
o.b= varargin{2};
else
error("the nuber of arguments do not match!")
end
end
end
end
>>x=inputClass([1 2 3],2)
x =
inputClass with properties:
var: [1 2 3]
b: 2
  댓글 수: 2
Guillaume
Guillaume 2019년 7월 10일
편집: Guillaume 2019년 7월 10일
"The defination of var is wrong."
From a pure matlab point of view (ignoring coder), there is nothing wrong with the definition of var. Can you explain what you mean by that?
Sayyed Ahmad
Sayyed Ahmad 2019년 7월 10일
you can def. a variable without dimension or a fix dimension. But a def. like var(:,1) could not be handel by compeiler.
Compeiler could be handel a calling of variable by var(:,1) but not the def. of variable.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Generating Code에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by