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;