目录

  • 1 Ch1 MATLAB软件
    • 1.1 ch1-1Matlab简介
      • 1.1.1 MATLAB界面介绍
      • 1.1.2 MATLAB变量和数组
      • 1.1.3 MATLAB选择结构
      • 1.1.4 MATLAB循环结构
      • 1.1.5 MATLAB脚本文件
      • 1.1.6 MATLAB函数文件
      • 1.1.7 matlab可视化
    • 1.2 ch1-2Matlab一元微积分应用
    • 1.3 ch1-3Matlab多元微积分应用
    • 1.4 ch1-4Matlab线性代数应用
    • 1.5 ch1-5Matlab概率统计应用
    • 1.6 ch1-6Matlab存取外部数据
    • 1.7 第一次课程所有视频合集
  • 2 Ch2-数学模型与数学建模
    • 2.1 数学实践与建模简介
    • 2.2 数学建模竞赛简介
    • 2.3 数学建模论文的写作
  • 3 Ch3 数学实践案例
    • 3.1 ch3-1高等数学实践案例
      • 3.1.1 曲率及其应用
      • 3.1.2 双曲面的生成及应用
      • 3.1.3 导数的应用-弯道的设计
      • 3.1.4 微分方程模型及其应用
      • 3.1.5 傅里叶级数的应用
    • 3.2 ch3-2线性代数实践案例
      • 3.2.1 线性方程组的应用
      • 3.2.2 线性规划问题
      • 3.2.3 线性规划实例
      • 3.2.4 线性规划lindo求解
    • 3.3 ch3-3概率统计实践案例
      • 3.3.1 全概率公式及其应用
      • 3.3.2 “狼来了”,信用评价问题
    • 3.4 概率模型
      • 3.4.1 线性回归分析
      • 3.4.2 线性回归的matlab实现
  • 4 Ch4 常见的数学建模方法
    • 4.1 插值
      • 4.1.1 一维插值及MATLAB实现
      • 4.1.2 二维插值及MATLAB实现
    • 4.2 数据拟合
      • 4.2.1 拟合及MATLAB实现
      • 4.2.2 小浪底调水调沙实例
    • 4.3 层次分析法
    • 4.4 聚类分析
      • 4.4.1 聚类分析原理
      • 4.4.2 葡萄酒评级实例
    • 4.5 主成分分析
  • 5 Ch5 智能计算
    • 5.1 遗传算法
      • 5.1.1 遗传算法理论
      • 5.1.2 遗传算法实例
      • 5.1.3 遗传算法实现
    • 5.2 神经网络
      • 5.2.1 神经网络理论
      • 5.2.2 神经网络实例
ch1-6Matlab存取外部数据

1.Xlsread读入数据
[a3, h_lukou] =xlsread('ex1.xls','sheet3');    %指定工作表中数据,表头和字符数据存入h_lukou

[a,h_lukou] = xlsread('2011B-data.xls', 'lukou');  %指定工作表中数据,表头和字符数据存入h_lukou

[a,h_lukou] = xlsread('2011B-data.xls','sheet3’,'A2:C3');   %读取指定工作量、指定区域的数据

2.文本数据

1)a=textread('b-lukou.txt');%这种读取的信息自动分隔,可带格式

读整个文件,例见B2011_fig.m

2)textscan

fr = fopen('b-lukou.txt ', 'r');  txt数据空格分隔

g1 = textscan(fr, '%d %d %d %f \n'); %读一行中指定格式的内容,指针移到未读处

                                 %这里\n是换行符,英文是next line

g1 = textscan(fr, '%d %d %d %f \n'N);%同一格式重复读N次,(包括P872.10好像不执行)

fr = fopen('ex2.txt ', 'r');  txt数据’,’分隔

g1 = textscan(fr, '%d %d %d %f \n','delimiter',',');

 

textscan更适合读入大文件;

textscan可以从文件的任何位置开始读入,而textread 只能从文件开头开始读入;

textscan也可以从上一次textscan结束的位置开始读入,而textread不能;

textscan只返回一个数组,而textread要返回多个数组;

textscan提供更多转换读入数据的选择;

textscan提供给用户更多的配置参数。

总之就是说textscan比textread要牛

2)逐行读TXT格式数据

fr=fopen('ex2.txt');    %打开要读的文件并送入“fr”,这是缺省“rt”形式。

fout=fopen('out1.txt','wt');  %建立要写文件,tab分隔,若文件存在则清除原内容。

%‘at’,写入方式打开,建立或续写内容

%‘r+t’同时支持读、写方式

while  ~feof(fr)

   a1=fgetl(fr); %读取整行,按字符处理,会自动移动指针,但只对文本文件有效

    %下面判断首字符是否为数值

   if double(a1(1))>=48 &&double(a1(1))<=57

      fprintf(fout,'%s \n',a1);  %写入文件

fprintf(1,'%s\n',a1);  %显示器显示

      %continue     %移动指针的,现在不需要

   end

end

fclose(fout);   %关闭文件

fclose(fr);

 

注:调用函数控制读写位置

a) fseek(fr,offset,origin)

 其中,fr—为fopen()返回的文件标示符,操作成功返回0,否则为-1.

offset—整型变量,移到指正的方向和字节数:

offset>0,当前位置向“尾”移动offset 字节;

offset=0,当前位置不移动;

offset<0,当前位置向“头”移动offset 字节;

origin—指定指针的参考位置,取值为:

  ‘bf’or -1,文件开头

  ‘cof’or 0,文件当前位置

  ‘eof’or 1,文件尾

b)ftell(fr)

获取指针离文件开头的字节数,若值为-1表示未成功调用。

c)frewind(fr)

移动指针到文件开头。

d)feof(fr)   判断文件是否到文件尾

fgets、fgetl 读取文件的下一行,指针自动下移。

  二者的区别:前者包括换行符,后者不包括。

   如:fgets(fr,10)%读取fr一行的最多10个字符。

 

3)a2=dlmread('data.txt')   %读整个数据

    数据‘,’分隔的可指定读取数据的起始行、列(注意0行0列开始编号),如:a2=dlmread('ex2.txt',',',5,3)

4) A =load('data.txt')  %读整个数据

5importdata('filename','delimiter','headerline’)

  如空格分隔,无表头:

importdata('data.txt')

也可importdata('data.xls'),但不能指定工作表多。

3.Xlswrite导出数据
xlswrite('tempdata.xls',d, 'Temperatures', 'E1')

%将数组d的数据写至tempdata.xls文件,新建工作表'Temperatures',从该工作表的E1单元格开始写入。如:程序见B2011_try.m

xlswrite('data1.xls', b,'xian_chang', 'A1'); %将矩阵b写入data1.xlsxian_chang工作表,从A1开始写

xlswrite('data1.xls', d,'fuwutai_zx', 'A1'); %将矩阵d写入data1.xlsfuwutai_zx工作表,从A1开始写

xlswrite('data1.xls', d1,'fuwutai_hx', 'E5'); %将矩阵d1写入data1.xlsfuwutai_hx表,从E5开始写

%上术三条可同时执行

4.不建议使用下面命令进行数据导出

%导出数据:用dlmwrite('data.xls',c) ,b表示数值矩阵,文件为类型为excel,但各列之间“,”分隔,如:

dlmwrite('data.xls',b);

%建议分两步走:先将MATLAB数据导成txt文件,即dlmwrite('data.txt',b),再打开excel,将txt数据导入excel即可。

dlmwrite('data.txt',b);