gpt4 book ai didi

matlab - 为 Matlab Coder 定义可变大小输入数据

转载 作者:行者123 更新时间:2023-12-02 02:23:53 26 4
gpt4 key购买 nike

我正在尝试使用 Matlab 编码器从 .m 文件生成 mex 代码文件。其代码是

function [result,x]=tesrank(A,x)

result = [];
n = x;
for col= 1:n
result = [result, sum(A==col, 2)];
end

对于固定大小,我可以使用它

codegen tesrank -args {zeros(2,3), zeros(1)}
% Here size(A)=2x3 and size(x)=1x1

如何在不限制 A 和 x 大小的情况下做到这一点?

最佳答案

您不必限制数组 A 的大小。

检查此示例(使用 Matlab 2014a):

codegen('funcAccumarray1D_max.m', ...
'-report', ...
'-args', {coder.typeof(double(0), [Inf 1]), ...
coder.typeof(double(0), [Inf 1])}, ...
'-o', 'funcAccumarray1D_max')

对于这个函数:

function [ outs ] = funcAccumarray1D_max(subs, vals, sz) 
%FUNCACCUMARRAY1D_MAX Construct an array by accumulation using 'max'
%#codegen
outs = NaN(sz, 1, 'like', vals);
for ix=1:size(subs,1)
sub = subs(ix);
outs(sub,1) = max(outs(sub,1), vals(ix,1));
end
end

关于matlab - 为 Matlab Coder 定义可变大小输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18243151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com