爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6083|回复: 4

[讨论] 数组维度的调整reshape

[复制链接]

新浪微博达人勋

发表于 2013-1-25 04:25:05 | 显示全部楼层 |阅读模式

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

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

x
A1=PrecipData(1:1:144,1:1:72,1:12:384);  
A=reshape(A1,331776,1);

n = length(A);      
dt =1;     
time = [0:(length(A)/(144*72))-1]*dt + 1979 ;  
xlim = [1979,2010];  
B=min(time):1/(144*72):max(time);

以上代码中数组A中有331776个数。B中无论怎么算都比A中少。我想把A和B中的个数设置成一样。不知道是B的步长错了,还是哪里出现问题了。因为time中是32个数,从1978-2010.所以我想把B的步长在缩小,想设置成A中的数目。

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

新浪微博达人勋

 楼主| 发表于 2013-1-25 04:39:13 | 显示全部楼层
matlab向量定义方法:

1.向量的普通定义方法
向量的常见格式有以下三种:
v1=1:N;          %格式1      
v2=x1:dx:x2 ;   %格式2
v3=x4:-dx:x3;    %格式3
参数说明:v1,v2,v3是返回的向量名。格式1中的向量的步长等于1,向量v1的最小值和最大值分贝是1和N,此种格式常用于循环指标的定义。格式2中的设定向量间隔步长是dx,向量的v2的最小值和最大值分别是x1和x2.格式3中的向量的步长等于-dx,它是一个负数,而向量的最大值和最小值分别是x4和x3。所有的返回向量都是行向量。在v1的定义的步长缺省,这是步长等于1,而向量的v2的生成语句中,步长等于dx.

2.用linspace函数定义向量的方法
函数linspace可以生成两个数之间的等间隔向量,其调用格式如下:
v1=linspace(x1,x2);         %格式1
v2=linspace(x1,x2,N);       %格式2
参数说明:v1和v2是返回的函数名。在格式1中,x1和x2是向量的两个端点,向量元素个数是100。在格式2中,x1和x2表示向量的两个端点,N用于指定的元素个数。当N是一个小数的时候,matlab将把N进行向0取整,即fix(N);当N时负数的时候,返回的向量v2将等于x1.同时x1和x2的大小关系人任意时,matlab自动调整正负步长,x1作为向量的起点,x2作为向量的终点。所有返回的向量都是行向量。
当linspace的输入参数N缺省时,生成的向量长度是100,我们可以任意指定。

3.用logspace函数定义向量的方法
函数logspace可以用来产生一个对数向量,其调用的格式如下:
v1=logspace(x1,x2);         %格式1
v2=logspace(x1,x2,n);       %格式2
参数说明:v1和v2是返回的对数向量。x1和x2用来控制端点,返回向量的两个端点的大小为10^1和10^2.格式1中的向量长度是50.格式2中的n用于指定向量的元素个数。函数logspace的计算过程是先得到x1和 x2之间的等间距向量,然后计算10^(linspace(x1,x2,n)),因此函数logspace得到的向量不是等间距向量,取对数后才是等距的。

4.用randperm函数来定义向量
函数randperm可以用于产生一个元素为从1到N的随机自然序列,其调用的格式如下:
rand('state',s)
v=randperm(N);
参数说明:s用于设定随机数的状态,这样程序每次执行的结果都是一样的,我们可以改变S的值以便取到不同的随机数。N用来定义随机向量的中的最大整数。

来自《matlab科学计算与可视化仿真》
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-1-25 20:58:04 | 显示全部楼层
time直接从1979:2010不行么?那个B是个什么意思呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-1-25 22:15:53 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-1-26 10:52:27 | 显示全部楼层
kongfeng0824 发表于 2013-1-25 22:15
因为横坐标要和纵坐标数量一致才能plot所以你懂得

你想数量一样,直接用linspace不行么
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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