MATLAB数值分析

    在学校的时间还有两年,准确的来说只有一年了,在剩下的一年里准备好好学习一下MATLAB然后在开始学习Java。MATLAB从零开始,依据课本。Java希望有经验的大牛也能多给一些经验,让小白少走一些弯路。

1.看到第一个例题遇到w=inf*ones(6) 不认得这些函数应该来说不愧是小白了。

    ones(6)生成一个6*6的矩阵。

w=inf*ones(6);    

w(1,[2 3 4 5 6])=[34 45 423 23 34]; 对矩阵中第一行中第2、3、4、5、6列进行赋值。

[s,d]=minroute(1,n,w);该语句是输出最短路径的顶点标号,08版本的MATLAB貌似不行,提示有错误,教材是14版的。

网页链接:https://wenku.baidu.com/view/8b492ed63186bceb19e8bb88.html 其中第二个就是例题。

暂且放一放。先看MATLAB基础知识。(深感作为小白的艰难)

MATLAB基础(1)

数据类型中实数函数:            复数相关函数:

floor(x);向下取整                         real(z);返回复数的实部

ceiling(x);向上取整                       abs(z);返回复数的模

round(x);取最接近的整数              conj(z);返回复数的共轭

fix(x);向0取整                              imag(z);返回复数的实部

                                                         complex(a,b);创建以a为实部b为虚部的复数

微记:inf 和-inf 分别代表正负无穷大。

MATLAB基础(2)

逻辑符号: a&b(a与b)  a|b(a或b) xor(a,b)(ab异或)   ~a(非a)

   M文件中可用:and(A,B)、or(A,B)、not(A)表示与、或、非。

对数组操作:find函数找出数组中的某些数的位置

    find(X);找出X中非零元素的位置(从第一列开始往下数)

    find(X==0);找出X中零元素的位置

    D=(find(D== -2))=C(find(D== -2)); D中等于-2的元素换成C中相应位置的元素

    D(find(D== -1))=[ ];删除D中为-1 的元素

字符串的连接strcat(s1,s2)           int2str用于将整数转换成字符串

    111452_dbjJ_3670444.png         111914_ZKBd_3670444.png

                                                          :A不是整数的时候先取整在进行转换。

*strcmp用于两个字符串的比较(只比较是否相等)   

    122901_N8EA_3670444.png

strncmp用于比较两个字符串的前n个字符,调用格式:M=strncmp(s1,s2,n)

strcmpi用于比较两个字符串是否相等(不区分大小写)

strmatch用于匹配字符串(不是多常用 p50)

findstr(str1,str2)在长字符串中查找短字符串,返回短字符串开始的所有位置

strrep(str1,str2,str3)字符串的替换。将str1中所有的str2替换成str3

islettter判断字符串中是否为数字

isspace判断字符串是否为空

MATLAB基础(3)

函数句柄(一种简介调用函数的方法)

调用格式:Function-handle(函数名)=@Function-Filename(M文件的名称或者MATLAB内部函数名)。调用M(x)就相当于调用思sin(x)函数(p50)【列 2-23看不太懂】

143752_zVRK_3670444.png

常量与变量(有一定的了解和基础不在叙述了、看一遍复习一下)

全局变量的定义:global MIN;全局变量最好全部用大写字母表示。

永久变量的定义:persistent SU-M;即定义SU-M为一个永久变量。

数组

一维数组的生成

*直接输入法                                        *步长生成法:X=a:inc:b;inc为数组的间隔步长

*等间距线性生成:X=linspace(a,b,n);此时在a、b之间生成n个线性采样点。

*等间距对数生成法:X=logspace(a,b,n);设定采样点数为n个的时候采用该方法。

152408_pd8L_3670444.png1~7之间现行采样4个点,查询第1个和第2个点的值。

多维数组的生成

特殊函数:

eye(n,m)生成n*m的单位阵                       ones(n,m)生成全是1的矩阵

zeros(n,m)生成全0矩阵                             rand(n,m)生成0~1之间的随机矩阵

diag (V,k)生成对角矩阵其中V是                magic(n,m)生成魔方矩阵

一个向量当k=0时V为主对角线上的元素。

160520_AiJE_3670444.png

三维数组(行、列、页)的创建以及相关运算(暂不考虑)

数组的运算

数组:A.*B     A.\B    A.^2   不同于矩阵:A*B  A\B   A/B   A^2

161730_8gFd_3670444.png161743_TzVc_3670444.png161800_03nZ_3670444.png

数组运算指的是数组中元素的运算不同于矩阵运算。

数组寻址与搜索

A(1,2) 得到1行2列的元素;     A(1,2)=3将1行2列的元素替换为3

A(:,2)=[]删除A中第2列元素

数组排序

sort(A);A若为矩阵将A的每一列元素从小到大进行排序

sort(A,dim);dim=1按列进行排序,dim=2按行进行排序

sort(A,mode);mode=ascend/descend(升序/降序)

[B,ID]=sort(A,dim);B为排序后的矩阵,ID 为新矩阵中对应原始矩阵的位置坐标。

疑点:[row,col,v]=find(A)运行结果是什么意思???

搜索最大、最小值

C=max(A);A若为向量返回其中的最大值;A若为多维数组返回A中每一列的最大值

[C,ID]=max(A,[],1/2];C为A中每一行的最大值,ID为对应的下标位置,若为1返回结果为行向量,若为2返回结果为列向量。

min同max。

低维数组的处理

fliplr 以垂直中线为对称轴交换左右元素  flipud 以水平中线为对称轴交换上下元素

rot90 对数组逆时针旋转90度              diag提取对角线上的元素【diag(A)A为向量和矩阵时意义不同】

triu保留上三角元素                              tril保留下三角元素

kron数组乘法(不常用)                      reshape结构变换函数(不常用)

circshift 循环移动数组的行或列

cricshift(A,1)循环移动行;  cricshift(A,[0,1])循环移动列;

173953_XOoh_3670444.png  174007_1lpA_3670444.png

高维数组处理(略)

单元数组创建cell

c=cell(n)创建n*n的空矩阵元胞数组c

c=cell(m,n)创建m*n的空矩阵元胞数组c

c=cell(size(A))创建与A相同大小的元胞数组c

180125_A2Sj_3670444.png

{}用于访问单元值,()用于标识单元不访问单元内的值

180334_blir_3670444.png单元数组函数(略)

结构体数组struct函数

s=('field1,value1,field2,value2,......)field1:字段名 value:字段值

183016_txPW_3670444.png183051_0LlW_3670444.png183143_31S0_3670444.png

个人总结:每一个结构中可以包含多个字段,每个字段可包含多个单元数组,但是同一个结构中的单元数组必须有相同数目的单元数组。

稀疏矩阵

特殊的稀疏矩阵

speye(m,n)创建单位稀疏矩阵

185438_tW7O_3670444.pngspeye返回的结果一列是对应非零元素的坐标,一列是非零元素。

R=sprand(S)创建与S矩阵相同结构的随机稀疏矩阵

R=sprand(m,n,density)生成一个服从随机分布的m*n稀疏矩阵,density为非零元素的分布密度

R=sprandn生成服从正态分布的稀疏矩阵同sprand

R=sparse(a)把a矩阵转换成稀疏矩阵的形式。sparse用于生成稀疏矩阵还有多中生成方法(略)

R=full(S)把稀疏矩阵S转化为满纸矩阵R

185344_6H4Z_3670444.png

对稀疏矩阵的操作

A=find(S)返回稀疏矩阵S中非零元素的主值(坐标位置)

n=nnz(S)返回S中非零元素的个数

N=nzmax(S)返回S中菲非零元素按照列顺序排列的列向量

B=spones(S)将S中所有的非零元素替换为零

f=spfun(’function‘,s)用函数对s中的非零元素进行运算

 

判断是否为稀疏矩阵;稀疏矩阵图形化(略)

 

应用:(知识重在应用)

例:求解对角线代数方程的解

201537_1HBW_3670444.png

代码如下:

200214_HaZj_3670444.png

(未完待续)

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3670444/blog/1528277

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数值分析及其MATLAB实现》所附学习光盘 ├─光盘内容和使用说明.doc 28.50KB ├─目录1.ppt 949.50KB ├─第一篇MATLAB快速入门 │ │ │ ├─第一章MATLAB简介 │ │ ├─第一篇 第一章.ppt 408.50KB │ │ └─第一篇第一章 │ │   ├─1.1.ppt 565.00KB │ │   ├─1.2.ppt 1.11MB │ │   ├─1.3.ppt 874.50KB │ │   ├─1.4.ppt 367.00KB │ │   └─1.5.ppt 448.50KB │ ├─第一篇 目录.ppt 389.00KB │ ├─第三章MATLAB的符号解 │ │ ├─第一篇 第三章.ppt 342.00KB │ │ └─第一篇第三章 │ │   ├─3.1.ppt 560.50KB │ │   └─3.2.ppt 591.00KB │ └─第二章MATLAB的基本语法 │   ├─第一篇 第二章of.ppt 324.50KB │   └─第一篇第二章 │     ├─2.1.ppt 614.50KB │     ├─2.2.ppt 393.50KB │     ├─2.3.ppt 450.00KB │     ├─2.4.ppt 438.00KB │     └─2.5.ppt 485.50KB ├─第三篇数值分析程序 │ ├─数值分析程序目录.doc 81.00KB │ └─高教数值分析 │   ├─第一章 │   │ └─第一章 误差与范数.doc 288.50KB │   ├─第七章 │   │ └─第七章 函数逼近与曲线(面)拟合.doc 309.50KB │   ├─第三章 │   │ └─第三章 解线性方程组的直接方法.doc 373.50KB │   ├─第九章 │   │ └─第九章 数值积分.doc 924.50KB │   ├─第二章 │   │ └─第二章 非线性方程(组)的数值解法.doc 509.50KB │   ├─第五章 │   │ └─第五章 矩阵的特征值与特征向量的计算.doc 538.50KB │   ├─第八章 │   │ ├─~$章 数值微分.doc 162B │   │ └─第八章 数值微分.doc 343.00KB │   ├─第六章 │   │ └─第六章 函数的插值方法.doc 793.50KB │   ├─第十章 │   │ └─第十章 常微分方程(组)求解.doc 492.00KB │   └─第四章 │     └─第四章 解线性方程组的迭代法.doc 149.00KB ├─第二篇MATLAB快速入门 │ ├─目录第二篇 MATLAB快速入门.doc 54.50KB │ └─第二篇 MATLAB快速入门 │   ├─第一章 │   │ ├─目录第二篇 第一章.doc 32.00KB │   │ ├─第一章 1.1.doc 35.00KB │   │ ├─第一章 1.2.doc 801.00KB │   │ ├─第一章 1.3.doc 471.50KB │   │ ├─第一章 1.4.doc 176.00KB │   │ ├─第一章 1.5.doc 105.50KB │   │ └─第一章 1.6.doc 288.50KB │   ├─第三章 │   │ ├─目录第二篇 第三章.doc 32.50KB │   │ ├─第三章 3.1.doc 73.50KB │   │ ├─第三章 3.10.doc 236.50KB │   │ ├─第三章 3.11.doc 150.50KB │   │ ├─第三章 3.2.doc 147.50KB │   │ ├─第三章 3.3.doc 95.00KB │   │ ├─第三章 3.4.doc 73.00KB │   │ ├─第三章 3.5.doc 42.50KB │   │ ├─第三章 3.6.doc 48.50KB │   │ ├─第三章 3.7.doc 102.50KB │   │ ├─第三章 3.8.doc 197.50KB │   │ └─第三章 3.9.doc 51.00KB │   ├─第二章 │   │ ├─目录第二篇 第二章.doc 29.50KB │   │ ├─第二章 2.1.doc 55.00KB │   │ ├─第二章 2.2.doc 45.00KB │   │ ├─第二章 2.3.doc 40.00KB │   │ ├─第二章 2.4.doc 43.50KB │   │ └─第二章 2.5.doc 74.50KB │   └─第四章 │     ├─目录第二篇 第四章.doc 30.50KB │     ├─第四章 4.1.doc 61.00KB │     ├─第四章 4.2.doc 256.00KB │     ├─第四章 4.3.doc 132.50KB │     ├─第四章 4.4.doc 117.50KB │     ├─第四章 4.5.doc 73.00KB │     └─第四章 4.6.doc 23.50KB └─第四篇书稿图形   ├─书稿图形   │ ├─第一章图形.doc 168.50KB   │ ├─第七章图形.doc 862.50KB   │ ├─第三章图形.doc 20.00KB   │ ├─第九章图形.doc 716.00KB   │ ├─第二章图形.doc 2.13MB   │ ├─第五章图形.doc 28.00KB   │ ├─第八章图形.doc 157.00KB   │ ├─第六章图形.doc 745.00KB   │ ├─第十章图形.doc 1.24MB   │ └─第四章图形.doc 725.50KB   └─书稿图形目录.doc 30.50KB 本文来自: 人大经济论坛 详细出处参考:http://www.pinggu.org/bbs/viewthread.php?tid=543074&page=1

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值