首页 > 解决方案 > 编译的 Matlab 中的零大小数组维度

问题描述

我有 Matlab 代码,它根据某些输入参数 N 生成可变大小的数组。维度 1 和 2 是固定的,并且数组在第三维度中的大小是 N,即 size(A) = [x, y, N ]。N 可以取从 1 向上的整数值。

因此,在 N=1 的情况下,我按如下方式对数组进行索引:

B = A(:, :, 1)

这里 A 简化为 2D 矩阵,但 Matlab 可以处理从 1 到更高维度的索引。

使用 Matlab Compiler SDK 编译此代码后,运行可执行文件会导致错误,因为运行时似乎无法处理从 1 到维度 3 的索引。打印 size(A) 给出 [x, y, 0] 并因此出现badsubscript错误.

我想我可以在 N=1 的情况下添加逻辑来处理对 A 的索引,但这似乎是一个障碍,因为 N=1 在任何其他情况下都不是特殊情况。但我希望有更好的方法来做到这一点?

标签: arraysmatlabdimensionscompiled

解决方案


推荐阅读