MATLAB程序如下,以下程序结果是从1开始,请问如何实现仿真图中n从零开始显示呢

MATLAB程序如下,以下程序结果是从1开始,请问如何实现仿真图中n从零开始显示呢,第1张

主要问题出在

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分析 下列程序中参数文件格式,头文件代码,函数代码,主程序代码分别是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10139805.html

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

发表评论

登录后才能评论

评论列表(0条)

保存