如何在matlab中生成时间序列

如何在matlab中生成时间序列,第1张

参考代码:

t0=datenum(2013,1,1,0,0,0)

dt=1/24

tf=datenum(2013,12,31,23,0,0)

T=t0:dt:tf

dv = datevec(T)

C=mat2cell(dv(1:end,1:5),ones(length(T),1),5)

S=cellfun(@(t){sprintf('%4i_%02i_%02i_%02i%02i_02',t)},C)

S1=cell2mat(S)

生成的结果,S是cell数组,每个元素对应一个时间;S1是字符矩阵,每行对应一个时间。

1

选5个移位寄存器

其实我也不知道这名字正不正确,反正就是z分之1那个

按顺序排列好,其中第二个初始条件(initial

conditions)设置为0,其他的默认为1.

2

先把这5个移位寄存器链接起来

第一个输出连第二个输入,以此类推到第五个接out,out这里再接一个scope以便观察信号波形

3

选一个logical

operator,并从设置中调成xor,4输入端

4

继续连线,xor的输出端接第一个移位寄存器的输入端;然后把xor输入端引到第二个移位寄存器和第三个移位寄存器的连线上,此时xor还有3个输入端,分别像刚刚那样分别引到第三和第四,第四和第五,第五和out的线上

5

点击运行

scope中显示的便是m序列,看吧

周期是31,1的个数比0多一个,而且没有重复波形!

不知道你要编程的还是simulink的....

Matlab如何导入excel数据的方法如下:

1、一xlsread()函数,比import简单的多,具体语句:

A = xlsread('yourfilename.xls')

直接在MATLAB中定义矩阵,再复制粘贴得了

定义矩阵就先定义个空的

比如一维:a=zeros(1,N);%%这是1xN的

2、二维:a=zeros(N) %%这是NxN的

然后在workspace窗口打开这个空矩阵,把excel中的数直接复制过来就行了

xlsread(),但是对excel表要求还挺高的,比如有次我就导入失败,是因为名字虽然是.xls,但是实际是 文本文件(制表符分隔)(*.txt) 格式的,所以你注意一下,对照matlab帮助,一般不会有问题

在一个空单元格输入1,并复制它

选中要转化成数值的单元格区域

右击-选择性粘贴-乘补充回答:这样 *** 作以后,仍不能转换数值,说明你原来的数据格式有问题,提示你检查以下几项:

1、数据内是否存在空格,(可以通过查找替换,将空格替换掉)

2、数据内是否存在非法字符!

清除后,就可以运算了

有的时候还需要:

把修改过的区域再进一步修改,全选中,然后“单元格格式”,把单元格格式由“常规”改为“数值”


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11555216.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存