matlab例题及demo分析

来源:互联网 发布:淘宝开店用什么软件好 编辑:程序博客网 时间:2024/04/28 12:22

1.3.2输入一个行矩阵


1.3.3分行输入一个行矩阵


1.3.4MATLAB提示出错


1.3.5用函数zeros生成全零阵


1.3.6用函数eye生成全零阵


1.3.7矩阵的加减运算


1.3.8两个矩阵的乘法运算


1.3.9矩阵的数乘运算


1.3.10向量的点积


1.3.11向量的叉乘


1.3.12向量的混合积


1.3.13左除和右除


1.3.14矩阵的乘方


1.3.15矩阵的转置


1.3.16对奇异矩阵求逆是MATLAB给出的警告信息


1.3.17用初等变换的方法求逆矩阵


1.3.18以有理格式输出结果



demo1:用fft函数分析太阳黑子的活动周期

太阳黑子的活动是有周期性的,大约每11年强度达到一个最大值,实验所用数据为近300年来天文学家观测到的太阳黑子数量及大小。

load sunspot.dat  %载入数据

year=sunspot(:,1);  %读取年份

relNums=sunspot(:,2);  %读取数据信息

plot(year,relNums)  %画出图表

title('SunspotData')  %标注标题


 

为了方便观察规律,使用开始50年的数据

plot(year(1:50),relNums(1:50),'b.-');  %用前50年的数据

 

Y =fft(relNums);  %对数据用fft函数,即快速傅里叶变换

Y(1)=[];  %由于算法问题,Y(1)为所有fft数值之和,所以要舍弃

plot(Y,'ro')  %在复平面作图,用红色空心点

title('FourierCoefficients in the Complex Plane'); 

xlabel('RealAxis');  %横坐标为实轴

ylabel('ImaginaryAxis');  %纵坐标为虚轴

 

功率与频率的关系曲线被定义为周期图

n=length(Y);  %取fft结果长度为n

power =abs(Y(1:floor(n/2))).^2;  %取前n/2个数求功率

nyquist= 1/2;  %取最大频率为0.5

freq =(1:n/2)/(n/2)*nyquist;  %将FFT转化为DTFT

plot(freq,power)  %以频率为横坐标,功率为纵坐标画周期图

xlabel('cycles/year')

title('Periodogram')

 

plot(freq(1:40),power(1:40))  %为了方便观察,取前40组数据

xlabel('cycles/year')

 

period=1./freq;  %将横坐标单位转化为年/周期

plot(period,power);  %画周期图

axis([040 0 2e+7]);

ylabel('Power');

xlabel('Period(Years/Cycle)');  %单位为年/周期

 

hold on;

index=find(power==max(power));  %找到频率最大的那个点,该点横坐标即为太阳黑子周期

mainPeriodStr=num2str(period(index));

plot(period(index),power(index),'r.','MarkerSize',25);  %用实心红点指出该点

text(period(index)+2,power(index),['Period= ',mainPeriodStr]);  %文字标注该点

holdoff;


 

demo2:如何使用图像可视化检查矩阵反演的结果

n = 100;

a = rand(n);  %a为一个n*n的随机矩阵

imagesc(a); %将矩阵a中的元素按大小转化为不同颜色

colormap(hot);  %用hot矩阵映射当前图形的色图

axis square;  %产生一个正方形坐标系

 

b = inv(a); %对a矩阵求逆

imagesc(b); %将矩阵b中的元素按大小转化为不同颜色

axis square;  %产生一个正方形坐标系

 

imagesc(a*b);  %将矩阵a和b相乘,将所得到的矩阵元素按大小转化为不同颜色

axis square;


 


3 0
原创粉丝点击