Matlab 学习笔记 (部分内容系转载)

本文是博主为数学建模比赛准备的Matlab学习笔记,主要涵盖基本操作、数据交互、数据拟合等方面。介绍了如何使用LOAD/SAVE、textread等函数读取数据,plot函数的多种用法,以及polyfit、regress、nlinfit等函数进行数据拟合的方法。此外,还提到了线性和非线性规划的解决策略。
摘要由CSDN通过智能技术生成

由于要参加数学建模比赛的原因,我需要在不到一周的时间内初步地学习Matlab。

因此,我希望把我在学习过程中阅读的资料记录下来,方便跟我一样需要在较短时间内速成Matlab的同学。

基本上我记录的东西都是从网上的资料总结而来。所以这篇文章更偏向是一个资料汇总类的东西。

凡是给过我帮助的资料我都已经列在“参考资料”里,为了美观就不在具体内容里标注引用了,请见谅。

另外,还有部分内容引自《MATLAB在数学建模中的应用》,一并感谢。

我使用的MATLAB版本是r2012a。绝大部分代码我都在本机运行过。由于资源的来源很多,代码风格可能不太一致。


博主最终学了一点点就干别的去了。。数模比赛也悲剧了。。所以此文烂尾了。。不过博主如果以后还要学习matlab,可能会再来更新也说不定。


一、基本操作


Matlab使用的是M语言,是一种解释性语言。
M语言文件的后缀名是.m。Matlab特有的数据存储格式是.mat。
Matlab默认的编程界面是控制行窗口,要新建.m文件可以点击File->New->Script。

常规操作我就不过多解释了。

若要了解某一函数的调用方式,直接在命令行窗口输入“help XXX”即可。


给出一些参考资料:

Matlab操作方法

MATLAB数据类型

matlab中数组元素引用




二、数据交互


1、从纯数据txt文件中读取数据

使用简单粗暴的LOAD/SAVE函数。
LOAD可以读MAT-file data或者用空格间隔的格式相似的ASCII data。SAVE可以将MATLAB变量写入MAT-file格式或者空格间隔的ASCII data。

eg:

M = load('test.txt')     % 从input.txt中读一个矩阵M。
M = M + 5       % 把M的每个元素加上5
save output M     % 把M保存在output.mat文件中
save output.txt M -ascii     % 把M以ASCII形式保存在output.txt文件中

2、从txt文件中按照特定格式读取数据

使用TEXTREAD/STRREAD函数
[A,B,C,…] = textread(filename,format,N)
其中括号里面变量的个数必须和format中定义的个数相同。 如果每N行相同格式的数据,可采用[A,B,C,…] = textread(filename,format,N)的语法,读取N次。
textread不用先fopen那个文件,适用于格式统一的txt文件的一次性大批量读取。textread读取某个文件后,下次再用textread读取这个文件时,还是会从文件头开始读取。
eg:

[data1,data2,data3,data4,data5] = textread('output.txt','%f %f %f %f %s',150,'delimiter',',');     % 以','为分隔符
[data1,data2,data3,data4] = textread('output.txt','%n %n %n %n','delimiter', ',','headerlines', 5);     % 跳过开头的5行 
[data1,data2,data3,data4] = textread('output.txt' , '%s %s %*f %d %s', 1)     % ‘*f ’告诉textread跳过一个浮点数。
[data] = textread('output.txt','%s %*[^\n]');    % [^\n] 就是一直读到行尾,%*[^\n] 是一直跳到行尾。可用于只读取第一列
[data1,data2,data3,data4] = textread('output.txt','%s test %d %f %d %s', 1)    % 忽略‘test’,只读取后面的数字

3、从txt文件中读取特定区域的数据:

下面这个函数是取filein中的第line行写入fileout中的程序: 

function dataout=dataread(filein,fileout,line) 
fidin=fopen(filein,'r'); 
fidout=fopen(fileout,'w'); 
nline=0; 
while ~feof(fidin) % 判断是否为文件末尾 
tline=fgetl(fidin); % 从文件读行 
nline=nline+1; 
if nline==line 
fprintf(fidout,'%s\n',tline); 
dataout=tline; 
end 
end 
fclose(fidin); 
fclose(fidout); 

调用格式:dataout=dataread(filein,fileout,line) 


如果txt文件数据是矩阵形式的,而没有其它的文字,用下面的程序就可以读任意行任意列的数据 

a=textread('ll.txt'); 
t=a(1:43,4:10);   % 1:43是1到43行,4:10是4到10列的数据


4、读取Excel文件 

使用xlsread、xlswrite函数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值