1.1:执行程序猜歌名
clc;clear;close all;
代码略,显然,歌名为《传奇》-王菲
1.2:作业 1.2 考虑下式: 对x0=0,编写两段程序求n=0,5,10,…200时的xn值,第一 段程序采用for循环,第二段程序采用while循环结构。 Xn收敛为何值?Plot函数的第三个参数为plot(x,y,’ks’), 画出xn的平方曲线图。X轴代表n,y轴代表x。
x=0;
n=input("请输入n:");N=[];X=[];
for i=0:n
x=x^2+0.25;
end
disp(x);
x=0;
n=1;
while(n<=200)
N(n)=n;
X(n)=x;
n=n+1;
x=x^2+0.25;
end
disp(x);
plot(N,X,"ks");
输入相应的n后即可得答案
1.3:阅读alexnet程序,并用于识别照片,其中alexnet和googlenet插件均需要自己在mathwork插件库下载
clc;clear;close all;
%% 读取图片
clear, clc
pic1 = imread('test (1).jpg');
pic2 = imread('test (2).jpg');
pic3 = imread('test (3).jpg');
pic4 = imread('test (4).jpg');
pic5 = imread('test (5).jpg');
pic6 = imread('test (6).jpg');
pic7 = imread('test (7).jpg');
pic8 = imread('test (8).jpg');
pic9 = imread('test (9).jpg');
pic10 = imread('test (10).jpg');
% imshow(pic1)
% pic2=imread('peppers.png');
%% 调用网络
net = googlenet;
sz = net.Layers(1).InputSize; % 神经网络中图片尺寸
img = imresize(pic1, [sz(1) sz(2)]); % 图片保存为可识别的尺寸大小
label = classify(net, img); %识别图片
disp(label)
img = imresize(pic2, [sz(1) sz(2)]); % 图片保存为可识别的尺寸大小
label = classify(net, img); %识别图片
disp(label)
img = imresize(pic3, [sz(1) sz(2)]); % 图片保存为可识别的尺寸大小
label = classify(net, img); %识别图片
disp(label)
img = imresize(pic4, [sz(1) sz(2)]); % 图片保存为可识别的尺寸大小
label = classify(net, img); %识别图片
disp(label)
img = imresize(pic5, [sz(1) sz(2)]); % 图片保存为可识别的尺寸大小
label = classify(net, img); %识别图片
disp(label)
img = imresize(pic6, [sz(1) sz(2)]); % 图片保存为可识别的尺寸大小
label = classify(net, img); %识别图片
disp(label)
img = imresize(pic7, [sz(1) sz(2)]); % 图片保存为可识别的尺寸大小
label = classify(net, img); %识别图片
disp(label)
img = imresize(pic8, [sz(1) sz(2)]); % 图片保存为可识别的尺寸大小
label = classify(net, img); %识别图片
disp(label)
img = imresize(pic9, [sz(1) sz(2)]); % 图片保存为可识别的尺寸大小
label = classify(net, img); %识别图片
disp(label)
img = imresize(pic10, [sz(1) sz(2)]); % 图片保存为可识别的尺寸大小
label = classify(net, img); %识别图片
disp(label)
%% 输出结果
% figure
% image(img1);
% title(char(label));
% disp(['The photo is ', char(label)])
1.4:分别用regress,normplot,stepwise分析建筑材料公司销售量
clc;clear;close all;
x1=[5.5 2.5 8.0 3.0 3.0 2.9 8.0 9.0 4.0 6.5 5.5 5.0 6.0 5.0 3.5 8.0 6.0 4.0 7.5 7.0];
x2=[31 55 67 50 38 71 30 56 42 73 60 44 50 39 55 70 40 50 62 59];
x3=[10 8 12 7 8 12 12 5 8 5 11 12 6 10 10 6 11 11 9 9 ];
x4=[8 6 9 16 15 17 8 10 4 16 7 12 6 4 4 14 6 8 13 11];
y=[79.3 200.1 163.2 200.1 146.0 177.7 30.9 291.9 160.0 339.4 159.6 86.3 237.5 107.2 155.0 201.4 100.2 135.8 223.3 195.0];
X=[ones(length(y)) x1',x2',x3',x4'];
[b,bint,r,rint,stats]=regress(y',X);
disp(b);disp(bint);disp(r);disp(rint);disp(stats);
Z1=[x1,y];
normplot(Z1);
hold on
Z2=[x2,y];
normplot(Z2);
Z3=[x3,y];
normplot(Z3);
Z4=[x4,y];
normplot(Z4);
stepwise(X,y');
1.5:根据经纬度计算两点间的球面距离
方法一:基于球面余弦公式的grest-circle距离
clc;clear;close all;
R=6370856;
Aj=input("请输入A点的经度:");
Aw=input("请输入A点的纬度:");
Bj=input("请输入B点的经度:");
Bw=input("请输入B点的纬度:");
%基于球面余弦公式:
AB=R*acos(cos(Aw*pi/180)*cos(Bw*pi/180)*cos(Bj*pi/180-Aj*pi/180)+sin(Aw*pi/180)*sin(Bw*pi/180));
disp(AB)
方法二:基于haversine公式
function B=haversin(A)
B=(1-cos(A))/2;
end
seta=acos(1-2*haversin(Aw*pi/180-Bw*pi/180)-2*cos(Aw*pi/180)*cos(Bw*pi/180)*haversin(Bj*pi/180-Aj*pi/180));
d=seta*R;
disp(d);
最后运行结果d=AB即是正确