matlab例题及demo分析

    xiaoxiao2021-03-25  77

    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;

     

    转载请注明原文地址: https://ju.6miu.com/read-26271.html

    最新回复(0)