新手怎么学Matlab

如题所述

一,MATLAB功能非常全面,也非常强大, 主要用于科学计算,它的计算基于矩阵来实现,可用于以下方面:
1,数值计算(好多问题没有解析解);
2,符号计算(呵呵,很强悍,做高数题方便了,不过在这方面MATLAB还不 是相当强,它的符号计算库借用了Maple的);
3,数据的分析,处理及可视化(数据绘图很方便);
4,图形图像处理,信号分析处理等等;
5,Simulink建模仿真,这是MATLAB非常有特色也是非常强大的功能,也使得其应用不仅仅局限于一般的科学计算。
二,MATLAB的软件应用:
MATLAB是用C语言开发的,支持编程,而且其语法跟C语言很相似,楼主想必已经学过C语言,再学习MATLAB会很轻松。
MATLAB支持与C语言,Fortran语言,Java语言的混合编程,同时支持与word,excel的混合使用,扩展性强。
三,MATLAB的学习:
学习它首先要有比较好的教材,初级阶段就用比较简单的教材,清华的,北航的,都可以。
高级阶段要用比较厚重,全面的教材,推荐一本鄙人正在使用的教材,人们邮电出版社出版,求是科技编著的《MATLAB 7.0 从入门到精通》,还有一本国内翻译的由美国人写的教材,很厚,很全(楼主自己在网上搜一下,我见同系的同学拿过,还是相当不错的)。
另外,学习MATLAB跟学习其他语言一样,要多上机,多练习,熟能生巧嘛。最后祝楼主学习愉快。
以上系个人总结,有啥不妥之处,还请见谅啊(看在我码这么多字的份上,也该奖励一下吧,呵呵)。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
推荐国立清华大学张智星老师的《科学计算》课程,中文教学:
http://mirlab.org/jang/courses/scientificComputing/schedule.asp

每一节课点进去之后有视频和PPT可供下载,网址:
http://mirlab.org/jang/books/matlabProgramming4beginner/

这个学完,入门够用了。之后就结合自己具体的课题和方向,多写就行了。本回答被网友采纳
第2个回答  2018-07-25
第一题 变量数列和直方图
%求频数
f=fopen('1.txt')
x=textscan(f,'%s',8)
title=x{1}'
t=textscan(f,'%s %f %f %f %f %f %f %f','Delimiter','\t')
y=[50:10:100]
y=y'
z=t{:,7}
zz=histcounts(z,y)
%求频数 方法2
f=readtable('1.txt','Delimiter','\t');
y=[50:10:100];
y=y';
t=f{:,7};
z=histcounts(t,y)
%画图
ff=load('1.2.txt');
yy=[50:10:100];
histogram(ff,yy);
ax=gca;
ax.YLim=[0 40];
ax.XLabel.String='分组';
ax.YLabel.String='频数';
第二题 分类汇总
%第2题
f=readtable('2.txt','Delimiter','\t')
grpstats(f,{'class','gender'},{'mean','std','max','min'})
第三题 描述统计

n=readtable('3.1.txt','Delimiter','\t')
x=n{:,1}
f=n{:,2}
xbar=sum(x.*f)/sum(f)
s=sqrt(sum(((x-xbar).^2).*f)/sum(f))

n=load('3.2.txt')
x=n(:,1)
f=n(:,2)
xbar=sum(x.*f)/sum(f)
s=sqrt(sum(((x-xbar).^2).*f)/sum(f))
第四题 柱形图+折线图
f=readtable('4.txt','Delimiter','\t')
x=f{:,1}
y=f{:,2}
bar(y,0.9)
ax=gca
ax.XTickLabel={'服务器','会议室空调','办公室窗帘','多媒体设备','家具改造'}
ax.XLabel.String='项目'
ax.YLim=[0 140000]
ax.YTick=[0:10000:140000]
ax.YLabel.String='金额'
ax.Title.String='设备金额'
hold on
xx=[1:1:5]
plot(xx,y,'red')
hold on
scatter(xx,y,'blue')
第五题 画函数画圆
x=[-3:0.01:3]
x=x'
y1=x.^2
plot(x,y1,'blue')
ax=gca
ax.XLim=[-3 3]
ax.YLim=[-3 3]
ax.XLabel.String='x'
ax.YLabel.String='y'
ax.XLabel.Position=[0,-3.5,0]
text(1.5,1,'y=x^2')
text(1.5,-2,'x^2+y^2=9')
hold on
y2=sqrt(9-x.^2)
plot(x,y2,'green')
hold on
y3=-sqrt(9-x.^2)
plot(x,y3,'green')
第六题 分布画图
ezplot('pdf(''t'',t,24)',[-3,3])
ax=gca
td=[-2:0.01:1]
yd=pdf('t',td,24)
td=[-2 td 1]
yd=[0 yd 0]
p=patch('XData',td,'YData',yd,'FaceColor',[0 0 1])
ax.YLim=[0 0.4]
第七题 回归分析
f=readtable('e7.txt','Delimiter','\t')
y=f{:,2}
x=[1:1:48]
x=x'
logy=log(y)
data=[x,logy]
data=array2table(data)
e1=fitlm(data,'linear','ResponseVar','data2')
b=e1.Coefficients.Estimate
logb0=b(1)
logb1=b(2)
b0=exp(logb0)
b1=exp(logb1)
%故方程为 Y=367.45*1.0305^t
第九题 矩阵引用
data=readtable('8.txt','Delimiter','\t')
data1=table2array(data) %必须将table转变成元胞数组才能进行筛选
data1(:,3)==1
y=data1(data1(:,3)==1,:) %然后将type=1的记录筛选出来,放到另外一个矩阵中。
data1(:,4:7)=0 % 将某几列的数值全部改成0
data1(:,4)=[] %删除某一列
相似回答