文档章节

MATLAB数值分析

C-1993-C
 C-1993-C
发布于 2017/09/03 20:15
字数 1951
阅读 19
收藏 0
点赞 0
评论 0

    在学校的时间还有两年,准确的来说只有一年了,在剩下的一年里准备好好学习一下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用于将整数转换成字符串

             

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

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

    

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看不太懂】

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

全局变量的定义: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个的时候采用该方法。

1~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为主对角线上的元素。

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

数组的运算

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

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

数组寻址与搜索

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])循环移动列;

  

高维数组处理(略)

单元数组创建cell

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

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

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

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

单元数组函数(略)

结构体数组struct函数

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

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

稀疏矩阵

特殊的稀疏矩阵

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

speye返回的结果一列是对应非零元素的坐标,一列是非零元素。

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

对稀疏矩阵的操作

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

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

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

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

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

 

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

 

应用:(知识重在应用)

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

代码如下:

(未完待续)

 

 

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
C-1993-C
粉丝 0
博文 4
码字总数 4609
作品 0
贝尔法斯特
Matlab数值分析K-means聚类算法

我写的附录文章1简单介绍了K-means聚类算法。Matlab提供了专用函数kmeans用于聚类的质心。 假设随机生成两维样本数据,然后用kmeans算出聚类并标记出质心: r1=randn(5,2)-2r2=randn(5,2)+2...

zhangphil
2017/12/14
0
0
Linux下数学(科学)软件简介(一)

装了linux已经有很久了,想着也得用用啊,不然浪费了多不好,以后搞嵌入式的时候还是要用的。很何况linux 就是用C编写的,在哪里编写C/C++那可是很好的,用一个很牛的编译器——GCC。 哈哈!...

wdliming
2011/11/11
0
0
数值分析Matlab二维正态(高斯)分布以及协方差矩阵

数值分析Matlab二维正态(高斯)分布以及协方差矩阵 主要是使用了matlab的mvnrnd产生随机的正态(高斯)分布二维矩阵,然后绘制出来。代码运行结果生成的正态分布实验数据如图: MATLAB代码: ...

zhangphil
2017/12/14
0
0
VC++与Matlab混合编程之引擎操作详解

Visual C++是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快。但在科学计算方面函数库显得不够丰富、读取、显示数据图形不方便。Matlab是一款将数值分析、矩阵计算、信...

flyhighly
2010/12/21
0
0
【工具使用系列】关于 MATLAB 电路与系统分析,你需要知道的事

如何进行电路与系统分析 信号的可视化及自变量变换及运算 连续时间信号的可视化 离散时间信号的可视化 连续时间信号的自变量变换及运算 离散时间信号的自变量变换及运算 LTI系统的时域数值分...

AllenMoore
02/19
0
0
除了不会生孩子 MATLAB 什么都会

Part 1 有趣的 MATLAB 如果你在暑假、有WIFI、有西瓜的空调房里不知道做什么,不如学下MATLAB吧,有了它,你可以什么都不需要! 知乎网友@邵恩真,示范了如何使用花式 MATLAB 玩游戏! 用 MA...

21ic电子网
02/01
0
0
如何自学图像编程

现在,图像类信息越来越多了,对图像的编程需求也越来越多。图像类项目的特点是性价比高,单行代码的价格一般是普通的程序的10倍,每行代码能够卖几块钱。很多人把目光放在这个上面。刚才又有...

最美的回忆
2017/06/21
0
0
多线程VC++和Matlab混编在信号采集和处理中的应用

引言 Visual C++自诞生以来,一直是Windows环境下最主要的应用开发系统,利用Visual C++开发系统可以完成各种应用程序的开发,从底层软件直到上层直接面向用户的软件都可以用Visual C++来...

云栖希望。
2017/12/04
0
0
数学老师装逼技巧,你绝对不会!

依稀记得,在小学到高中的学习生涯中,印象最深刻的就是数学老师了,总是觉得数学老师是最牛掰的,什么难题都能解,什么图都会画,好像就没有什么是能难倒他的。那么作为一名数学老师,你怎样...

学术研究软件
2016/04/25
399
0
SIFT四部曲之——方向角度确定

本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing/ ...

hit2015spring
2017/02/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CentOS “Destination Host Unreachable”问题解决办法

挑战极速安装CentOS时遇到局域网主机不能通信的情况: [root@zjd network-scripts]# ping 8.8.8.8PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=1 ttl=......

wffger
14分钟前
0
0
CentoOS6.6安装netcat

CentOS下安装netcat 使用zookeeper过程中,需要监控集群状态。在使用四字命令时(echo conf | nc localhost 2181),报出如下错误:-bash: netcat: command not found。 我的系统是CentOS 6....

ghou-靠墙哭
24分钟前
0
0
es6之解构赋值巧用

ES6 允许按照一定模式,从数组、对象等中提取值,对变量进行赋值,这被称为解构赋值。 如何进行解构赋值我这里就不赘述,本篇文章主要是将解构赋值的巧妙使用之处。 1、交互变量的值 常用交互...

秋季长青
30分钟前
0
0
Elasitcsearch High Level Rest Client学习笔记(三)批量api

Bulk Request BulkRequest可以在一起从请求执行批量添加、更新和删除,至少需要添加一个操作 BulkRequest request = new BulkRequest(); //创建BulkRequestrequest.add(new IndexRequest("...

木子SMZ
33分钟前
0
0
mybatis-dynamic sql

OGNL expressions if 判断是否存在值 <select id="findActiveBlogLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <if test="title != null"> AND title like #{tit......

writeademo
40分钟前
0
0
社交系统ThinkSNS+ V1.8.3更新播报

     研发发布版本号:1.8.3   本次版本于2018年7月16日发布   本次发布类型:新增功能、细节调整与优化   社交系统ThinkSNSPlus更新体验:请于官网下载/安装最新版或联系QQ35159...

ThinkSNS账号
44分钟前
0
0
教育思考:选择编程是一场父母和孩子的和解[图]

教育思考:选择编程是一场父母和孩子的和解[图]: 之前有个很热的段子是这样讲的:深夜十点的时候,某小区一女子大声喊叫“什么关系?啊?!到底什么关系?你说!”最后发现原来是一位妈妈陪...

原创小博客
44分钟前
0
0
X64汇编之指令格式解析

最近由于项目组内要做特征码搜索的东西,便于去Hook一些未导出函数,你懂得...于是就闲着学习了一下x86/x64的汇编指令格式。x86的汇编指令格式请参照http://bbs.pediy.com/showthread.php?t...

simpower
47分钟前
0
0
rust 语法概要(只适合不熟悉时快速查阅使用,不适合理解其精髓。未完待续)

注意:本内容只适合快查,不适合理解精髓。精髓请研读 https://kaisery.github.io/trpl-zh-cn/foreword.html 基本数据类型 i8,i16,i32,i64,i128 u8,u16,u32,u64,u128 f32,f64 char bool:true...

捍卫机密
50分钟前
0
0
JS中严格模式和非严格模式

1,使用 严格模式的使用很简单,只有在代码首部加入字符串 "use strict"。必须在首部即首部指其前面没有任何有效js代码除注释,否则无效 2.注意事项 (1)不使用var声明变量严格模式中将不通...

AndyZhouX
51分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部