请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4219|回复: 7

[程序设计] matlab数组串联

[复制链接]

新浪微博达人勋

发表于 2018-5-27 15:25:00 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

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


密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-5-27 15:53:16 | 显示全部楼层
不错,很实用
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-5-27 22:29:57 | 显示全部楼层

回帖奖励 +4 金钱

b(i,j,:,k)这直接得到的并不是一个向量,可以参看squeeze函数
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-5-28 08:39:58 | 显示全部楼层
过来学习下,顺带灌灌水~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-5-28 08:40:44 | 显示全部楼层

回帖奖励 +4 金钱

weinihou 发表于 2018-5-28 08:39
过来学习下,顺带灌灌水~

没有灌到水……表示不开心……
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-5-28 14:45:02 | 显示全部楼层

回帖奖励 +4 金钱

水水
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2018-5-28 15:44:52 | 显示全部楼层

回帖奖励 +4 金钱

你用b(i,j,:,k)提取出来的不是一个一维的数组,是一个1*1*n的数组,应该squeeze一下的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-5-28 16:05:47 | 显示全部楼层
已解决,谢谢楼上各位
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表