A
是Mx1
A = (DAL(:,K+1) == i);
如何将其转换为C ++?
答案 0 :(得分:1)
Mat1b A = DAL.col(K) == i;
DAL
是一个矩阵(double
,因为默认情况下Matlab使用双精度)MxN
:
Mat1d DAL = ... // MxN matrix
要在Matlab中提取K
列(而不是K+1
,因为Matlab是基于1的,而C ++是基于0的),您可以使用col
运算符:
int K = ...
Mat1d columnK = DAL.col(K);
然后你可以创建一个逻辑矩阵A(在OpenCV逻辑矩阵中是uchar
类型的矩阵,其值为0
或255
):
int i = ...
Mat1b A = columnK == i;
与columnK
具有相同的尺寸,即Mx1
。
所以,在实践中:
int K = ...
int i = ...
Mat1d DAL = ...
Mat1b A = DAL.col(K) == i;