声明可变大小数据

您所在的位置:网站首页 matlab怎么改代码大小 声明可变大小数据

声明可变大小数据

2024-07-09 08:39| 来源: 网络整理| 查看: 265

只有同构元胞数组才能具有可变大小。将 coder.varsize 用于异构元胞数组时,代码生成器会尝试使元胞数组的结构相同。代码生成器会尝试查找适用于元胞数组所有元素的类和最大大小。以元胞数组 c = {1, [2 3]} 为例。两个元素都可以用双精度类型表示,其第一个维度具有固定大小 1,第二个维度具有可变大小且上界为 2。如果代码生成器找不到通用的类和最大大小,代码生成将失败。以元胞数组 c = {'a',[2 3]} 为例。代码生成器找不到能够同时表示这两个元素的类,因为第一个元素是 char,第二个元素是 double。

如果使用 cell 函数定义固定大小元胞数组,则无法使用 coder.varsize 指定元胞数组具有可变大小。例如,以下代码会导致代码生成错误,因为 x = cell(1,3) 使 x 成为固定大小的 1×3 元胞数组。

... x = cell(1,3); coder.varsize('x',[1 5]) ...

您可以将 coder.varsize 与使用花括号定义的元胞数组结合使用。例如:

... x = {1 2 3}; coder.varsize('x',[1 5]) ...

要使用 cell 函数创建可变大小的元胞数组,请使用以下代码模式:

function mycell(n) %#codegen x = cell(1,n); for i = 1:n x{i} = i; end end

请参阅为所有元胞数组元素赋值。

要指定元胞数组的上界,请使用 coder.varsize。

function mycell(n) %#codegen x = cell(1,n); for i = 1:n x{i} = i; coder.varsize('x',[1,20]); end end


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3