Error : Constant Operands
6 ビュー (過去 30 日間)
古いコメントを表示
Hi
Iam implementing following code as show below
m = 10;
v = [1 1 2 : m]
If I try to make fixed point , I am getting the error "Operands must be constants." I don't understand what is expected here. Can someone help me ?
Thank you
2 件のコメント
Geoff Hayes
2022 年 3 月 23 日
@Jogger - please clarify what you mean by "try to make this fixed point". What line of code leads to the error message?
採用された回答
David Hill
2022 年 3 月 25 日
Does changing to double work? I don't have the toolbox
v = [1 1 2 : double(m)]
その他の回答 (1 件)
Andy Bartlett
2022 年 3 月 29 日
I'm puzzled by the error you described "Operands must be constants.".
When I attempt to reproduce the issue, I don't observe any problem.
I created this simple function.
function y = makeVec(m)
y = [1 1 2 : m];
end
When I test this with double or fixed-point inputs
u1 = 10;
u2 = fi(10);
y1 = makeVec(u1)
y2 = makeVec(u2)
the outputs are as expected.
y1 =
1 1 2 3 4 5 6 7 8 9 10
y2 =
1 1 2 3 4 5 6 7 8 9 10
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 16
FractionLength: 0
Code generation can provide additional restrictions, so I tried that too.
codegen makeVec -args {u1} -o makeVec1_mex
codegen makeVec -args {u2} -o makeVec2_mex
y1m = makeVec1_mex(u1)
y2m = makeVec2_mex(u2)
Again, the outputs were as expected.
y1m =
1 1 2 3 4 5 6 7 8 9 10
y2m =
1 1 2 3 4 5 6 7 8 9 10
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 16
FractionLength: 0
If you could clarify the original reproduction steps, that would be appreciated.
Andy
参考
カテゴリ
Help Center および File Exchange で Fixed Point についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!