如何在矩阵的维度上同步nan ?

1次观看(过去30天)
如何在一维中设置所有nan元素,在另一个维度中也设置nan元素?
我的例子:我有一个大小为(a)的3d矩阵a
Ans = 34168 30
让这个任意模型输出,例如地图中的34168个网格点g, 30年y和13个模型m。现在我需要将给定模型m的所有值设置为nan,如果该位置的任何其他模型m的值为nan。换句话说:如果A(g,y,2)是nan,我需要设置A(g,y,1) nan,如果A(g,y,3)是nan,我需要设置A(g,y,1) nan…对于所有的g y m。
现在我有一个循环,应该做的工作,但似乎16 GB RAM是不够的,因为它需要永远:
一个=兰德(13)34168年,30日;%只是为了说明
b =兰迪(元素个数(A), 1000000, (1);
(b) =南;%设置随机数为nan
m = 1;
m = 1:尺寸(3)
(行{m} {m}上校)=找到(isnan ((:,:, m)));
结束
抽搐
m = 1;
m = m:大小(3)
n = 1;
n = n:尺寸(3)
disp (num2str ((mn)))
(行{n}, {n},上校米)=南;
结束
结束
toc
同步后,每个m中的nan数量应该是相同的,例如test through
长度(找到(isnan((:,: 1)))) = =长度(找到(isnan ((:,: 2))))
我知道,这些是很多nan(> 10%的元素),但应该有一种方法使这种方式更快。
任何帮助和提示都非常感谢。
欢呼,
yolgs

答案(0)

标签

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!