- 积分
- 2066
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2015-10-27
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我有一个0-1数组,维数是192x94x92x50,我现在循环是a(i,j,:,k)目的是提取第三维的数把它提取成1维的数据,现在想在这个一维的数据最前面或者最后面加一个数据0,请问该怎么串联呢?我的代码是这样的,但是串联那块虽然matlab没有报错,但我感觉不是我想要的数据,因为我是想在提取出的那一行前面加0,然后用diff来判断大于0开始的位置和大于0结束的位置,然后再判断间隔。
ncinfo('e:/wbgt/data/frequnce50x92x94x192.nc');
fre=ncread('e:/wbgt/data/frequnce50x92x94x192.nc','fre');
a=fre(:,:,:,:)==1;
b=zeros(192,94,92,50);
for i=1:192
for j=1:94
for k=1:50
ind1=find(diff([b(i,j,:,k);a(i,j,:,k)])==1);
ind2=find(diff([a(i,j,:,k);b(i,j,:,k)])==-1);
% ind2(i,j,k)=find(diff(fre(i,j,:,k),b(i,j,:,k))==-1);
mask=(ind2-ind1+1>=3);
ind3=ind1(mask);
ind4=ind2(mask);
p(i,j,k)=size(ind3,1);
% t(i,j,k)=ind4-ind3+1;
clear ind1;
clear ind2;
clear mask;
clear ind3;
clear ind4;
end
end
end
|
|