图片缩略图

CopyMask

版本1.1.0.0 (12.8 KB) 1月
快速线性索引

307下载

更新2015年2月05

查看许可协议

CopyMask—逻辑索引
Matlab的线性索引速度很快,比通常使用FIND快得多。
但是使用C-Mex函数可以达到两倍以上的速度。
Y =复制掩码(X, Mask, Dim)
输入:
X:数组类型:DOUBLE, SINGLE, (U)INT8/16/32/64, LOGICAL, CHAR。
x可以复杂。
掩码:作为逻辑向量的掩码。
昏暗:指定屏蔽的尺寸。如果省略或空矩阵[]
采用线性分度法。可选的,默认值:[]。
输出:
Y:与x相同类型的数组。对于线性索引,Y是一个[N x 1]向量。

注:
-等效Matlab代码:Y = X(Mask)
-与Matlab逻辑索引的区别:
*线性索引速度快2到3倍。
*在每种情况下都返回一个列向量。
*掩码不能比数组长,而Matlab允许额外的
尾随值,当它们为FALSE时。
—如果指定Dim且X不小,则该函数仅占一定百分比
例如:Y = X(:, Mask,:)

例子:
X =兰德(2、3、4);
Y = CopyMask(X, X > 0.2);% Matlab: X(X > 0.2),非常快

M =[真,假,真];
Z =复制掩码(X, M, 2);% Matlab: X(:, M,:),稍微快一点

我只能在Matlab 2009a和2011b下进行测试。也许这种加速在现代的Matlab版本中消失了。请将unit-test函数的输出发送到代码中给出的地址。

首先必须编译c文件。如果之前执行了"mex -setup",则在没有输入的情况下调用CopyMask将启动自动编译。如果编译失败,你可在以下网址下载预编译文件:http://www.n-simon.de/mex

引用作为

1月(2021)。CopyMask(//www.tianjin-qmedu.com/matlabcentral/fileexchange/49553-copymask), MATLAB中央文件交换。检索

MATLAB版本兼容性
创建R2011b
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!