function in simulink matlab function block is not bounded

1 次查看(过去 30 天)
I'm trying to figure about using convhulln in simulink for my own purposes and came across and error when running this code in an matlab function block in simulation mode:
function K = fcn()
P = rand(10,3);
K = zeros(12,3);
V = convhulln(P);
K(:,:) = V(1:12,:);
end
I'm aware of this sort of error and its why I preallocated K to an array of [12,3] and only pushed 12 values from V. But the error is not originating from the input or output of my own function, reather it seem that convhulln is causing this issue. Unless I'm miss reading https://www.mathworks.com/help/simulink/ug/control-memory-allocation-for-variable-size-arrays-in-a-matlab-function-block.html I can't think of how to make their suggestions apply to functions calls within a matlab function block where the size of the inputs to convhulln are static. Any idea of what I might not be considering?
  2 个评论
Paul
Paul 2023-7-12
Hi Daniel,
What is the utility outputting only the first 12 rows of V? What if K has more than 12 rows?
rng(100)
size(convhulln(rand(10,3)))
ans = 1×2
16 3
Daniel Delannes-molka
12 is absolutly arbitrary, I need a static size array output so I set it 12 for testing. When i'm sure the function will work I will probrably be more intelligent about the array size. something like this(or just setting K to be a variable size array):
function [K,s] = fcn()
P = rand(10,3);
K = zeros(128,3);
V = convhulln(P);
s = size(V,1);
K(1:s,:) = V(1:s,:);
end

请先登录,再进行评论。

回答(1 个)

Angelo Yeo
Angelo Yeo 2023-7-12
Yesterday, when I looked into your previous question, I tried to fix the model. Please take a look and compare it with yours. See the attachment.
  1 个评论
Daniel Delannes-molka
It appears to be running into the exact same error I got above when run in simulation. With regrad to hardware mode(monitor and tune) I see that you are using the ert.tlc. Initaly, it did not work but when I set the code interfacing packaging to nonreusable function I ended up with the same error as above as well.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Manual Performance Optimization 的更多信息

标签

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by