Matlab和任何,理解困难
Matlab and any, difficulties in understanding
我不明白这个代码的作用:
if any(scale==0)
loglik = -inf;
我必须用Armadillo库将其翻译成C++,该库没有any
函数,所以我想知道如何做到这一点。
我已经阅读了matlab手册,但它仍然令人困惑。然后我尝试了这个测试用例:
if any([*]==0)
1
else
0
end
使用这些值(以及更多):
[0 0;0 0]
[1 0;0 0]
[1 0;1 0]
[1 0;0 1]
[1 1;1 1]
但我仍然很困惑,结果很糟糕。。有什么解释吗?
Matlab(和Armadillo)将布尔表示为false
的0
和true
的1
(或者实际上不是0
的任何东西)。它们都在矩阵/向量上定义了一个==
算子,该算子进行分量比较并输出布尔矩阵。any
正在获取布尔值矩阵,并检查是否有布尔值为非零。
Armadillo似乎没有any
,但它提供了find
,可用于实现any
:
!find(X, 1).is_empty()
是等价的(尽管可能更慢):它构造了一个最多包含一个非零元素的向量(find的文档)。如果它为空,则不存在非零元素,因此any
将返回false。
从3.910版本开始,Armadillo具有any()函数。
相关文章:
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 如何在不产生任何垃圾的情况下获得C中的像素
- 有可能在Armadillo中复制MATLAB circshift方法吗
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- C++映射有2个键,这样任何1个键都可以用来获取值
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- RtlCaptureStackBackTrace未捕获任何帧
- 链表c++插入,所有情况都已检查,但没有任何工作
- C++模板函数,用于比较任何无符号整数和有符号整数
- Arduino millis() - millis() 怎么能等于 0 以外的任何东西?
- 尝试摆脱任何堆内存分配
- 是否有任何C++功能可以对地图进行排序?
- 打印时有二叉树问题.用户输入不打印任何内容
- Matlab和任何,理解困难
- 有任何相同的种子为Matlab随机和c++随机
- 是否有任何现有的库在C/CPP/Obj-C中实现matlab函数
- MATLAB mex文件构建成功,但没有显示任何内容