Matlab编码器不恒定或空矩阵表达式

65(30天)
你好,我是想让由Matlab函数转化为墨西哥人文件增强函数的执行速度但是编码器显示错误:
不恒定或空矩阵表达式。这个表达式必须是常数,因为它的价值决定了大小或类的一些表达。导致问题的代码的一部分
indx =垫= = max(垫);
提名= {acceptedB {indx:}};
我也尽量不使用逻辑索引使用
indx =找到(垫= = max(垫);
但同样的错误出现。知道如何解决这个问题而不影响执行速度的函数?

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2016年6月5日
首先分配给变量的数组是正确的类和可能遇到的最大大小。例如,
indx = 0(元素个数(垫),1);
您需要使用元素个数的垫子,因为所有的元素的可能性在垫子上相同的值,这样你找到()会返回 每一个 索引。
然后 你可以做
indx =找到(垫(:)= = max(垫(:)));
结果很可能是短于你原来分配的大小,这是好的:你可以重新分配一个矩阵 更短的 但不像
然而,我担心因为它看起来我好像
提名= {acceptedB {indx:}}
是无限期的大小。将
提名= acceptedB(指数:);
是可接受的?
6个评论
Ayim曼努埃尔。德。拉。德帕
你好,
我面临同样的问题,你解决了吗?
谢谢!

登录置评。

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!