精华内容
下载资源
问答
  • 帮同学写的一个程序,目的是:把很多个NC数据合并在一起,并且每个.nc数据的变量名称是相同,我平常读.nc数据比较多,较少涉及写入。我先使用了IDL但是由于原数据的属性信息也很多,因此最后放弃。而MATLAB有基于...

    帮同学写的一个程序,目的是:把很多个NC数据合并在一起,并且每个.nc数据的变量名称是相同,我平常读.nc数据比较多,较少涉及写入。我先使用了IDL但是由于原数据的属性信息也很多,因此最后放弃。而MATLAB有基于现有的数据创建一个模板,对数据进行生成。

    代码如下:

    1.先对需要的.NC数据进行提取

    2.提取所需的数据属性等

    3.对数据进行赋值

    tic
    close all;
    clear all;
    sy=2005;
    ey=2005;
    for year=sy:ey
        ncpath=strcat('J:\codeforYu\',num2str(year),'\');
        files = dir([ncpath,'*.nc']);
        len = length(files);
        outfilepath='J:\codeforYu\new\';
        filename=strcat('MERRA2_300.tavg1_2d_flx_Nx.',num2str(year),'.nc4.nc');%MERRA2_300.tavg1_2d_flx_Nx.2005_2005.nc4.nc
        outtmp(576,361,len*4)=0.01; %len*4
        time(len*4)=-1;
        for i = 1:len
            finfo = ncinfo([ncpath,files(i).name]) ;  %'返回有关 NetCDF 数据源的信息'
        %     ncdisp([ncpath,files(i).name])          %'在命令行窗口中显示 NetCDF 数据源内容'
            ncid = netcdf.open([ncpath,files(i).name],'nc_nowrite');  %'打开nc文件,获取文件id'
            varid = netcdf.inqVarID(ncid,'RHOA'); % '获取所需变量的id号 varid'
            p = netcdf.getVar(ncid, varid);
            timetmp= ncread([ncpath,files(i).name],'time');
            if i ==1
                outtmp=p(:,:,0+1);
                time=timetmp(0+1);
    %             time=cat(1,time,timetmp(6+1));
    %             time=cat(1,time,timetmp(12+1));
    %             time=cat(1,time,timetmp(18+1));
    
            else
    %             1440=24*60由于此时我们进行了合并,但是不同文件的时间起始是不同的
                outtmp=cat(3,outtmp,p(:,:,0+1));
                time=cat(1,time,timetmp(0+1)+(i-1)*1440);
                
            end
            outtmp=cat(3,outtmp,p(:,:,6+1));
            outtmp=cat(3,outtmp,p(:,:,12+1));
            outtmp=cat(3,outtmp,p(:,:,18+1));
            time=cat(1,time,timetmp(6+1)+(i-1)*1440);
            time=cat(1,time,timetmp(12+1)+(i-1)*1440);
            time=cat(1,time,timetmp(18+1)+(i-1)*1440);
            
            netcdf.close(ncid) %'关闭文件' 
    
    
        end
    
    
    %    lat的属性信息加载
        myVarSchema = ncinfo([ncpath,files(1).name],'lat');
        ncwriteschema(strcat(outfilepath,filename),myVarSchema);
    %     lon的信息加载
        myVarSchema = ncinfo([ncpath,files(1).name],'lon');
        ncwriteschema(strcat(outfilepath,filename),myVarSchema);
    %     看一看咋样了
        ncdisp(strcat(outfilepath,filename));
    % RHOA属性信息加载
        schema=ncinfo([ncpath,files(1).name],'RHOA');
    % 修改一定的信息
        schema.Dimensions(3).Length = len*4;%size(outtmp,3);%len*4
        schema.Size=[576 361 len*4];%len*4
        ncwriteschema(strcat(outfilepath,filename), schema);
    %    看一看
    %     ncdisp(strcat(outfilepath,filename));
    % time的属性信息加载
        timeschema=ncinfo([ncpath,files(1).name],'time');
        timeschema.Dimensions(1).Length = len*4;%size(outtmp,l3);%len*4
        timeschema.Size=len*4;%len*4
        ncwriteschema(strcat(outfilepath,filename), timeschema);
    %     看一看
        ncdisp(strcat(outfilepath,filename));
    % 将本年第一个文件的lat给它
        ncwrite(strcat(outfilepath,filename),'lat',361);
        latData   = ncread([ncpath,files(1).name],'lat');
        ncwrite(strcat(outfilepath,filename),'lat',latData);
    
    % 将lon给他
        ncwrite(strcat(outfilepath,filename),'lon',576);
        lonData   = ncread([ncpath,files(1).name],'lon');
        ncwrite(strcat(outfilepath,filename),'lon',lonData);
    % RHOA的赋值
    %     outtmp=double(outtmp);
        ncwrite(strcat(outfilepath,filename),'RHOA',outtmp);
    % time的赋值
    %     time=int32(time);
        ncwrite(strcat(outfilepath,filename),'time',time);
        disp(['已经完成:' num2str(year) ]);
    end
    
    toc

     

    展开全文
  • Excel合并计算完成多表格数据汇总求和多表格数据汇总可以使用透视表,使用函数,今天读书屋OFFICE网陈飞老师分享一个通过合并计算完成多表格数据汇总方法,合并计算分为两种情况,一种情况是:多个表格类别一致数据...

    Excel合并计算完成多表格数据汇总求和

    多表格数据汇总可以使用透视表,使用函数,今天读书屋OFFICE网陈飞老师分享一个通过合并计算完成多表格数据汇总方法,合并计算分为两种情况,一种情况是:多个表格类别一致数据不同,另一种情况是类别不一致,数据也不同。示例表格如下图所示,汇总1-3月销量到“汇总”表格中。

    242694215474d58943f529adacc66bec.png

    第一步:鼠标光标定位在“汇总”工作表A1单元格,依次单击【数据】—【合并计算】,弹出“合并计算对话框”。

    274f35a67edfe5f3d1dd3ed7390d1abb.png

    第二步:在合并计算对话框里的“函数”可以选择对多表汇总后的数据是执行合种计算,常用的有“求和”、“求平均”、“求最大”、“求最小”。

    b9852df74e2d20048d5039f91635a11c.png

    第三步:先把光标定位在“引用位置”下的文本框,然后单击1月工作表后选择要汇总的单元格区域,最后单击“添加”按钮。

    a25b7c8198d589612b46da04aa6e1c69.png

    第四步:参照第三步操作,完成2月及3月工作表数据的调用,最后合并计算按所选函数的计算方式对“所有引用位置”下方工作表进行汇总。

    efea459785a087884fbb8bed8b1467b8.png

    图一:要汇总的工作表

    1cdd92923c68bfa2123da748242c310d.png

    图二:合并计算执行后的结果

    第五步:合并计算执行后的结果没有标题,可以先撤消这次执行,后再次打开“合并计算”在标签位置:勾选“首行”与“最左列”。

    b1409fe67f468e1cb2c3b51ee6d5da71.png

    第六步:再次确定后,可以得到三个表的计算汇总结果,要注意,既使三个工作表的行的顺序不一致,也会按名称进行汇总。

    1d07effa3544928746849e3068ad3e30.png

    第七步:增加与改变3月份工作表类别数据,再次打开“合并计算”,先删除“'3月'!$A$3:$B$14”引用,然后再次引用3月工作表数据添加后确定。

    如下图所示:如果三个工作表行名称一致的话,则执行数据汇总,如果三个表数据有不一致的则自动汇总到一张表。

    32a91d8bfaedd16c54bdcea8f7b7110d.png

    转载请注明出处:读书屋office教程网;作者陈飞;

    来源链接:http://www.dushuwu.net/xqkan.aspx?newsid=583

    展开全文
  • 1、一维数组直接合并题目:数组work1[x1,x2——,xn],work2[y1,y2——,yn],如今要生成一数组work3。work3中的数据为[x1,x2,x3--xn,y1,y2--yn];合并方法:直接将两矩阵合并:A = [1,2,3,4];B = [-1,-2,-3,-4];C ...

    1、一维数组直接合并

    题目:

    数组work1[x1,x2——,xn],work2[y1,y2——,yn],如今要生成一个数组work3。

    work3中的数据为[x1,x2,x3--xn,y1,y2--yn];

    合并方法:

    直接将两个矩阵合并:

    A = [1,2,3,4];

    B = [-1,-2,-3,-4];

    C = zeros(1,size(B,2)+size(A,2));     %这句能够不要;

    C = [A, B];

    2、一维数组交叉合并:

    题目:

    数组work1[x1,x2——,xn],work2[y1,y2——,yn]。如今要生成一个数组work3,

    work3中的数据为[x1,y1,x2,y2——,xn,yn];

    合并方法一:

    A = [1,2,3,4];

    B = [-1,-2,-3,-4];

    C = zeros(1,size(B,2)+size(A,2));

    C(1:2:end) = A;

    C(2:2:end) = B

    C =

    1    -1     2    -2     3    -3     4    -4

    解法二:

    A = [1,2,3,4];

    B = [-1,-2,-3,-4];

    C=[A' B']';

    C=reshape(C, 1, length(A)+length(B));

    C =

    1    -1     2    -2     3    -3     4    -4

    解法三:

    对于解法二改进:

    c=reshape([A;B],1,[]);

    这里要注意,仅仅能在v7以上的版本号才干使用此法。

    解法四:

    A = [1,2,3,4];

    B = [-1,-2,-3,-4];

    C=kron(A,[1 0])+kron(B,[0 1]);

    C =

    1    -1     2    -2     3    -3     4    -4

    非常多技巧。试总结以上的方案:

    -------------------------------------

    A = [1,2,3,4];

    B = [-1,-2,-3,-4];

    ----------------- 1 -----------------

    C = zeros(1,size(B,2)+size(A,2));

    C(1:2:end) = A;

    C(2:2:end) = B;

    C=C(:);

    ------------------2 -----------------

    C=[A' B']';

    C=reshape(C, 1, length(A)+length(B));

    ------------------3-------------------

    c=reshape([A;B],1,[])

    ------------------4-------------------

    C=kron(A,[1 0])+kron(B,[0 1]);

    --------------------------------------

    展开全文
  • D为由A、B、C组成的大Cell,其中, D{1,1}=A D{1,2}{1,1}=B D{1,2}{1,2}=C 由以上数据,请问如何得到如下的cell呢? E={CombNum' 100 200 300 400 500 'Dcon' a1 b1 c1 d1 e1 'Nmax' a2 b2 c2 d2 e2...

    本帖最后由 langxuzeng2015 于 2016-3-8 23:51 编辑

    问题如下:A={'CombNum';...

    'Dcon';...

    'Nmax';'Nmin';...

    'Mxmax';'Mxmin';...

    'Mymax';'Mymin';...

    'Vxmax';'Vxmin';...

    'Vymax';'Vymin'};

    B={100,200,300,400,500};

    C={'a1','b1','c1','d1','e1';

    'a2','b2','c2','d2','e2';

    ................................

    'a11','b11','c11','d11','e11'};

    D为由A、B、C组成的大Cell,其中,

    D{1,1}=A

    D{1,2}{1,1}=B

    D{1,2}{1,2}=C

    由以上数据,请问如何得到如下的cell呢?

    E={CombNum'        100      200    300      400      500

    'Dcon'              a1       b1      c1        d1         e1

    'Nmax'             a2       b2      c2       d2         e2

    'Nmin'            .....................................................

    'Mxmax'         .....................................................

    'Mxmin'          .....................................................

    'Mymax'         .....................................................

    'Mymin'          .....................................................

    'Vxmax'          .....................................................

    'Vxmin'           .....................................................

    'Vymax'          .....................................................

    'Vymin'         a11       b11      c11      d11       e11 }

    ====================================

    ====================================

    恳请各位前辈指教一下,衷心感谢!

    祝好!

    展开全文
  • 一、建立子文件夹-mkdir的使用需求:在文件夹‘截取后数据’中建立子文件夹s01—s32。代码:for k=1:32if k<10pathname=sprintf('s0%d\\',k);endif k>=10pathname=sprintf('s%d\\',k);endpathname2=['C:\Users...
  • MATLAB多个一维数组的合并

    万次阅读 2014-07-11 00:15:41
    MATLAB多个一维数组的合并
  • 多个netcdf文件的合并matlab

    千次阅读 多人点赞 2018-09-26 14:22:25
    说明:下载CCMP再分析风场,一个nc文件存储一天的数据,而ECMWF-Interim再分析风场则是一个nc文件存储一个月的数据,有时候我们需要的是一个nc文件里头包含很多个月的数据,这时候就需要把每天或者每月的数据合并到...
  • matlab读取多个数据文件合成一张图 具体来说就是将一个文件夹里的多个csv文件用matlab读取后再绘制成一张图 % file=dir('E:\0817\*.csv'); % 返回data文件夹下的文件列表 [f, p] = uigetfile({'*.csv', 'Data Files...
  • matlab多个mat文件合并成一个

    万次阅读 2018-04-19 10:01:41
    filename='data_batch_1.mat'; data=[]; labels=[]; for i=1:5 file=matfile(filename); data=[data;file.data]; labels=[labels;file.labels]; filename(12)=int2str(i+1);...save('train.mat','...
  • MATLAB合并多个mat文件为一个mat文件

    千次阅读 2020-11-28 22:15:23
    将如下四mat文件合并,每文件为1500行101列,合并完为7500行101列 clc clear all close all %% a=[]; List =dir('C:\Users\Administrator\Desktop\code\lstmdata\pri*.mat'); k =length(List); for i=1:k ...
  • MATLAB中把张fig图数据合并到同一张figure中 关键在于fig图的名称需要有好的规律性,方便使用for循环 例如: 将文件夹中的4张fig图放到一起,各图的名称如下图 代码如下 clc,clear all; %% 提取图片数据...
  • 合并多个TXT数据,前提是 TXT中的分隔符必须是 Tab键分割,也就是所谓的“\t”分隔!
  • WCF 已知类型和泛型解析程序 KnownType数据协定继承 已知类型和泛型解析...【总结】matlab求两序列的相关性首先说说自相关和互相关的概念. 自相关 在统计学中的定义,自相关函数就是将一有序的随机变量系列与其自...
  • 我有一组数据,其中我已经以3组读数记录了值(以便能够获得SEM的一般概念).我将它们记录在一个如下所示的列表中,我试图将其折叠成每组3个点的平均值: 我想基本...我已经尝试过使用accumarray,但很难知道如何合并多个...
  • 按时间合并多个netcdf文件(matlab

    千次阅读 2018-10-05 17:01:39
    按时间合并多个netcdf文件(matlab)说明思路感谢代码[1] 说明 将netcdf数据按时间先后顺序合并,利用循环,尽量不改变子数据属性。 思路 将变量分为含时间维和不含时间维两类,分别处理。 感谢 ...
  • 1、一维数组直接合并题目:数组work1[x1,x2——,xn],work2[y1,y2——,yn],现在要生成一数组work3,work3中的数据为[x1,x2,x3--xn,y1,y2--yn];合并方法:直接将两矩阵合并:A = [1,2,3,4];B = [-1,-2,-3,-4];C ...
  • 合并两个或多个字符串 strcat()合并 strcat('字符串1','字符串2'); strcat('字符串1','字符串2','字符串3'); strcat()用以链接两个或多个字符串 借用向量表示拼接字符串 ['字符串1','字符串2','字符串3'] ['字符串1...
  • 首先想要用一循环读取txt数据,假设txt数据保存的名字为'8-1.txt','8-2.txt',...,并将数据保存在一数组中,以读取4组数据为例,实现数组的纵向拼接,程序实现如下: data=[]; for i=1:4 fileName = ['8-' num2...
  • 这个应用程式会撷取多个TCK档案,并将它们合并为一个TCK档案。 merge2TCKs应用程序将合并两个tcks。 mergeTCKs应用程序将合并多个tcks(即,两个以上)。 输出是单个TCK文件,其中包含两个(或多个)输入tck文件中...
  • (一)合并Excel的信息 描述: 假设两表格分别为某些产品的生产量和销售量流水信息,如图, 尝试将两表格合并,即将对应同一产品的生产量和销售量合并在同一行;且产品名称这一列,不能有重复的产品名称。...
  • matlab指数函数拟合并提取参数

    千次阅读 2019-12-19 09:46:46
    请教matlab指数函数拟合,并提取参数问题 我想利用 y=ae^bx 指数拟合,把指数转化为: ln(y)=ln(a)+bx 进行regress拟合,并提取参数。 现在不知道如何把指数写入代码中 for i=1:mn ndvi=ndvisum(i,:)’;%ndvi...
  • matlab合并股票代码使用 Pandas 进行数据分析 这是我的书的代码库,由 Packt 于 ...来确保数据的准确性、将其可视化以进行有效决策以及可靠地跨多个域重现分析所需的技能。 你会学到什么 先决条件:P
  • 由于产生的matlab生成的
  • 走在学习的路上 身为matlab小白,在复现论文时发现作者的第一步处理用的时matlab对图像处理保存,之后才用到深度...网上也找了很的代码就行修改,断断续续试了3天才最终跑通,昨天离开实验室就让他自己跑,也太感动了
  • 通过该平台分享本实验数据和学习过程,共享劳动成果,同时,也方便大家交流学习,希望结实更的大神一起交换思想,共同学习,与人玫瑰,手有余香!
  • 当我们进行分析时,需要进行合并。可以使用matlab 原始数据文件格式形如: 新数据 file=dir('E:\libs_project\RS\*.txt'); #文件夹路径,*.txt表示读取文件夹下的.txt文件 for n=1:length(file) ....
  • matlab图像分割肿瘤代码合并单个样本(MaSS) v.0.01.0001 创建者:Benjamin Green 1 ,Sneha Berry 2 ,Elizabeth Engle 2 ,Nicolas Giraldo 3 ,Peter Nguyen 2 ,Tricia Cottrell 3 ,Janis Taube1 2,3和Alex ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,699
精华内容 3,079
关键字:

matlab多个数据合并

matlab 订阅