主要问题出在
stem(abs(F1(1:N),'');
这一句。
解释如下 abs(F1(1:N) 里面包含了N个量(在这里是6个了)。matlab会自动把横坐标设为[1 2 3 4 5 6],然后画图。其实你可以把横坐标的定义为[0 1 2 3 4 5],很简单:
f=0:5;
stem(f,abs(F0(1:N)),'')
于是,程序最后变成
close all;clc;clear all;
N=6;
n=0:N-1;
kf0=[20000, -13383, -02091, 16180, -19563, 10000 ];
kf1=[20000, -13383, -02091, 16180, -19563, -13383 ];
kf2=[20000, -13383, -02091, 16180, -02091, -13383 ];
kf3=[20000, -13383, -02091, 16180, -02091, -13383 ];
kf4=[20000, -13383, -19563, 16180, -02091, -13383 ];
kf5=[20000, 10000, -19563, 16180, -02091, -13383 ];
win=boxcar(N);
win=win';
F0=fft(kf0win,N); %a0=angle(F0)180/pi
F1=fft(kf1win,N); %a1=angle(F1)180/pi;
F2=fft(kf2win,N); %a2=angle(F2)180/pi;
F3=fft(kf3win,N); %a3=angle(F3)180/pi;
F4=fft(kf4win,N); %a4=angle(F4)180/pi;
F5=fft(kf5win,N); %a5=angle(F5)180/pi;
F6=(F0+F1+F2+F3+F4+F5)/6;a6=angle(F6)180/pi;
f=0:5;
subplot(4,2,1); stem(f,abs(F0(1:N)),'');xlim([0 N]);ylim([0,N]);xlabel('k');ylabel('X0(k)');grid on; title('1')
subplot(4,2,2); stem(f,abs(F1(1:N)),'');xlim([0 N]);ylim([0,N]);xlabel('k');ylabel('X1(k)');grid on; title('2')
subplot(4,2,3); stem(f,abs(F2(1:N)),'');xlim([0 N]);ylim([0,N]);xlabel('k');ylabel('X2(k)');grid on; title('3')
subplot(4,2,4); stem(f,abs(F3(1:N)),'');xlim([0 N]);ylim([0,N]);xlabel('k');ylabel('X3(k)');grid on; title('4')
subplot(4,2,5); stem(f,abs(F4(1:N)),'');xlim([0 N]);ylim([0,N]);xlabel('k');ylabel('X4(k)');grid on; title('5')
subplot(4,2,6); stem(f,abs(F5(1:N)),'');xlim([0 N]);ylim([0,N]);xlabel('k');ylabel('X5(k)');grid on; title('6')
subplot(4,2,7); stem(f,abs(F6(1:N)),'');xlim([0 N]);ylim([0,N]);xlabel('k');ylabel('Y(k)');grid on; title('7')
subplot(4,2,8); plot(a6(1:N)); ylim([-200 200]);xlim([0 N]);grid on;title('apDFT的相位谱')
用函数dlmread可以从txt文件中读取指定行列的带分隔符的数值。如
c=dlmread('datatxt',' ','b1b1000')
是从datatxt中读取1-1000行的第二列的数值,文档数值用空格分隔。
若是第一列,最后一个参数字符串改成a1a1000
这个程序最后句function stress=Hexahedral3D8Node_Stress(E,NU,x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,x5,y5,z5,x6,y6,z6,x7,y7,z7,x8,y8,z8,u),说明,程序还未完,子程序只有定义句,没有过程代码。
如何利用MATLAB并行计算缩短程序运行时间
第一步:首先打开MATLAB命令窗口,输入matlabpool open ,或者把这句加入程序开头。
第二步:主要是两种:parfor模式和spmd模式。两种模式的应用都很简单。
parfor其实就是parallel+for简化而来,就是把原来程序中的for循环中的关键字for改为parfor就行。
spmd 自己help就会了。
以上就是关于MATLAB程序如下,以下程序结果是从1开始,请问如何实现仿真图中n从零开始显示呢全部的内容,包括:MATLAB程序如下,以下程序结果是从1开始,请问如何实现仿真图中n从零开始显示呢、用matlab编了一个等精度测量数据的小程序,但是还差开头读取数据.txt 文、有限元用MATLAB分析 下列程序中参数文件格式,头文件代码,函数代码,主程序代码分别是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)