gpt4 book ai didi

arrays - 如何在 Matlab 中将 NaN 分配给值 j < k

转载 作者:行者123 更新时间:2023-12-02 07:22:00 24 4
gpt4 key购买 nike

我是一个 Matlab 新手,我想将 NaN 值赋给一个大小为 (j, k, l) 的数组,只要维度是 j < k 或 j < l。我如何最有效地做到这一点?

最佳答案

您可以使用 bsxfun 高效地完成它:

J = (1:size(A,1)).';
K = 1:size(A,2);
L = reshape(1:size(A,3),1,1,[]);
A(bsxfun(@or,bsxfun(@lt,J,K),bsxfun(@lt,J,L))) = NaN;

在 MATLAB r2016b 或 Octave 中,您可以简单地编写:

J = (1:size(A,1)).';
K = 1:size(A,2);
L = reshape(1:size(A,3),1,1,[]);
A(J<K|J<L)=NaN;

矩阵 A = rand(500,400,300) 的测试结果:

 ________________________________
| METHOD | MEMORY | SPEED |
|==========|==========|==========|
| MESHGRID | 1547 MB | 1.24 Secs|
|----------|----------|----------|
| BSXFUN | 57 MB | 0.18 Secs|
|__________|__________|__________|

关于arrays - 如何在 Matlab 中将 NaN 分配给值 j < k,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43064126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com