文档章节

MATLAB入门基础

SVD
 SVD
发布于 2016/01/26 11:33
字数 1144
阅读 148
收藏 3
点赞 2
评论 0

预定义变量

>> format short e
>> RMAd = realmax('double')  %双精度类型默认最大实数

RMAd =

  1.7977e+308

>> RMAs = realmax('single')  %单精度类型最大实数

RMAs =

  3.4028e+38
>> IMA64 = intmax('int64')   %int64整数类型最大正整数

IMA64 =

  9223372036854775807

>> IMA32 = intmax   %int32整数类型最大正整数

IMA32 =

  2147483647

>> IMA32 = intmax('int16') %int16整数类型最大正整数

IMA32 =

  32767
>> e1 =eps %双精度类型相对精度

e1 =

   2.2204e-16

>> e2 = eps(2) %表达2时的相对精度

e2 =

   4.4409e-16  
>> pi

ans =

   3.1416e+00

面向复数设计的运算

>> z3 = 2*exp(i*pi/6);%运算符构成的极坐标表示法
>> z1 = 4+3i;%运算符构成的直角坐标表示法
>> z2 = 1+2*i;
>> z = z1*z2/z3;
>> z1

z1 =

   4.0000e+00 + 3.0000e+00i

>> z2

z2 =

   1.0000e+00 + 2.0000e+00i

>> z3

z3 =

   1.7321e+00 + 1.0000e+00i

>> z

z =

   1.8840e+00 + 5.2631e+00i

>> real_z = real(z)

real_z =

   1.8840e+00

>> image_z=imag(z)

image_z =

   5.2631e+00

>> magnitude_z = abs(z)

magnitude_z =

   5.5902e+00

>> angle_z_radian = angle(z)%弧度单位

angle_z_radian =

   1.2271e+00

>> angle_z_degree = angle(z)*180/pi%度数单位

angle_z_degree =

   7.0305e+01
>> z1 = 4+3*i; %指令后采用分号,使得运算结果不显示
>> z2= 1+2*i;
>> z12 = z1+z2;
>> clf,hold on %clf清空图形窗口,逗号用来分隔两个指令
>> plot([0,z1,z12],'-b','LineWidth',3)
>> plot([0,z12],'-r','LineWidth',3)
>> plot([z1,z12],'ob','MarkerSize',8)
>> hold off, grid on
>> axis equal
>> axis([0,6,0,6])
>> text(3.5,2.3,'z1')
>> text(5,4.5,'z2')
>> text(2.5,3.5,'z12')
>> xlabel('real')
>> ylabel('image')
>> shg

求一个数的3次方根

>> a = -8;
>> r_a = a^(1/3)

r_a =

   1.0000e+00 + 1.7321e+00i

>> p=[1,0,0,-a];%先构建一个多项式p(r)=r^3-a,p是多项式的系数向量
                %指令末尾的英文状态分号使得该指令运行后不显示结果
>> R = roots(p)

R =

  -2.0000e+00 + 0.0000e+00i
   1.0000e+00 + 1.7321e+00i
   1.0000e+00 - 1.7321e+00i
>>  t = 0:pi/20:2*pi;
>>  MR = abs(R(1))%计算复数根的模
>> x = MR*sin(t);
>> y = MR*cos(t);
>>  plot(x,y,'b:'),grid on
>>  hold on
>>  plot(R(2),'.','MarkerSize',30,'Color','r')
>>  plot(R([1,3]),'o','MarkerSize',15,'Color','b')
>> axis([-3,3,-3,3]),axis square %保证屏幕显示真圆
>> hold off

面向数组设计的运算

>> AR = [1,3;2,4]

AR =

     1     3
     2     4
>> AI = [5,7    %回车用来分隔数组中的行
6,8]

AI =

     5     7
     6     8    
>> AR = [1,3;2,4];
>> AI = [5,7;6,8];
>> A = AR - AI*i
A =
   1.0000 - 5.0000i   3.0000 - 7.0000i
   2.0000 - 6.0000i   4.0000 - 8.0000i
>> A_real = real(A)
A_real =
     1     3
     2     4
>> A_image = imag(A)
A_image =
    -5    -7
    -6    -8 
>> for m =1:2 %循环法计算复数矩阵中各个元素的模和幅角
for n = 1:2
Am1(m,n)= abs(A(m,n));
Aa1(m,n) = angle(A(m,n))*180/pi;
end
end
>> Am2 = abs(A)%直接法求复数矩阵的各个元素的模和幅角
Am2 =
    5.0990    7.6158
    6.3246    8.9443
>> Aa2 = angle(A)*180/pi
Aa2 =
  -78.6901  -66.8014
  -71.5651  -63.4349

real,imag,abs,angle是同时、并行作用于数组的每个元素的,对4个元素的运算所需的时间大致与对单个元素所需的时间相同。这有利于运行速度的提高。这是向量化运算的一种形式。循环法求各个元素的模和幅角的指令不是很有效的计算方法。对于MATLAB之外的许多编程语言来说,应该尽量摒弃循环处理,采用向量化的处理方式。

对于衰减振荡曲线y = e^(-t/3)*sin(3t),t= [0,4pi]

>> t = 0:pi/50:4*pi;%定义自变量t的取值数组
>> y = exp(-t/3).*sin(3*t);%计算与自变量相应的y数组,注意乘法运算符前面的小黑点
>> plot(t,y,'-r','LineWidth',2)%绘制曲线
>> axis([0,4*pi,-1,1])
>> xlabel('t'),ylabel('y')

.*符号表示的是在两个数组的相同位置上的元素之间进行的乘法运算。即“数组乘”。数组乘的引入不但使得程序显得简洁自然,而且避免了耗费机器时间的循环运算。应当尽可能的像第二条指令那样采用“向量化”的运算形式。

>> B = [3+2i,2+6i;5+3*i,4-2*i]%复数数组的输入方式
B =
   3.0000 + 2.0000i   2.0000 + 6.0000i
   5.0000 + 3.0000i   4.0000 - 2.0000i
>> C = A * B                  %矩阵乘法
C =
  49.0000 -39.0000i  30.0000 -38.0000i
  62.0000 -42.0000i  40.0000 -40.0000i

当数组具备变换的属性时,二维数组就被称为矩阵。当两个矩阵的“内维大小相等”时,矩阵乘法才能进行。矩阵A的列数和矩阵B的行数相等,所以可以进行A乘以B的运算。在MATLAB中,矩阵相乘和标量相乘的格式一样,而在其他的编程语言中,矩阵的乘法不得不依赖循环进行。MATLAB的设计者之所以能够把矩阵运算表达的像“线性代数”那样简洁易读,自然流畅,是因为MATLAB设计者采用了“面向对象”的编程技术。

© 著作权归作者所有

共有 人打赏支持
SVD

SVD

粉丝 32
博文 195
码字总数 97009
作品 0
海淀
图像处理入门教程

  最近有人问我图像处理怎么研究,怎么入门,怎么应用,我竟一时语塞。仔细想想,自己也搞了两年图像方面的研究,做个两个创新项目,发过两篇论文,也算是有点心得,于是总结总结和大家分享...

u013088062
2015/12/29
0
0
如何快速上手使用Python进行金融数据分析

【量化小讲堂- Python、pandas技巧系列】 如何快速上手使用Python进行金融数据分析 根据之前几篇系列帖子以及交流QQ群(461470781)中的反馈,让我觉的很有必要写一篇如何快速上手使用Pyhton进...

小克898
2015/12/01
6.1K
0
python 与 matlab 混编

用于 Python 的 MATLAB 引擎 API 快速入门 安装用于 Python 的 MATLAB 引擎 API Matlab的官方文档中介绍了 Matlab 与其余编程语言之间的引擎接口,其中包括对于 Python 开放的引擎 API,可参...

xinet
06/11
0
0
【备忘】2017年最新整理python神经网络深度学习算法全套视频教程

2017年最新整理python神经网络深度学习算法全套视频教程 课程介绍: 此阶段主要介绍了Python语言为工具对每种算法进行结合实例讲解,并使用Python中相关的package来对实际问题进行数据预处理...

qq_38155396
2017/07/01
0
0
除了不会生孩子 MATLAB 什么都会

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

21ic电子网
02/01
0
0
从零开始学习SLAM

从零开始学习SLAM 最近6个月开始做SLAM的项目,就一步步把资源的链接给共享出来。 项目内容:主要是从Andrew Davison中的MonoSLAM中起步,做Co-SLAM 推及 Swarm SLAM 下面都是我看过或者亲身实...

geowangsh
2016/03/08
161
0
机器学习/深度学习书单推荐及学习方法

所谓的“大数据”在近两年来极其火爆,甚至连街头巷尾的买菜大妈都知道。大数据最根本的基础是机器学习/深度学习,然而很多程序员们想要从事数据岗位的工作却不知如何下手。 数学需要吗?需要...

valada
04/12
0
0
Vc调用matlab导出的dll,实现vc与matlab混合编程

Vc调用matlab导出的dll,实现vc与matlab混合编程 写这篇博客的目的就是想把前段时间的工作交接下,让后来人接手这个项目的人迅速的入门。文章虽短,在项目初期可是搜刮了很多资料花了不少的时...

长平狐
2012/10/08
821
0
机器人研发十大热门编程语言:不死 Java、不朽 C/C ++、新贵 Python

流水的编程语言,铁打的 Java、C/C++。 进行人工智能机器人研发,应该选择哪种编程语言? 这是很多机器人专家在自身的职业生涯中都会存在的一个入门级思考。毕竟,在学习一门编程语言时,需要...

嘿你好夏天
2017/11/28
0
0
自然语言处理之路:方法——机器学习基础

一个自然语言处理炼丹师的自白 往期: 自然语言处理之路:前提——英文 自然语言处理之路:前提——数学 自然语言处理之路:前提——语言学 自然语言处理之路:工具——七种兵器 因为各种媒体...

坂本龙一
06/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ实战:5种模式和示例

应用RabbitMQ的5种队列 一、简单队列 P:消息的生产者 C:消息的消费者 红色:队列 生产者实现思路: 创建连接工厂ConnectionFactory,设置服务地址127.0.0.1,端口号5672,设置用户名、密码...

spinachgit
4分钟前
0
0
mysql常见报错标号对应原因以及处理方法

mysql常见报错标号以及对应解决方法 报错标号 报错现象 解决方法 原因 1449 Cause: java.sql.SQLException: The user specified as a definer ('authplat_dev'@'%') does not exist 在控制台...

ChinaHYF
6分钟前
0
0
Java 监控系统技术选型

(1)操作系统监控 Sigar oshi (2)Tomcat监控 JMX 日志 (3)Oracle监控 日志 直连SQL查询 基于Druid连接池

cccyb
8分钟前
1
0
解决IDEA中moduel配置了maven依赖可是依然不能使用依赖中的类

POM.xml中明明配置了依赖,也开启了maven的 auto-import 下面的刷新maven也没用: 直到使用下面的解决办法才使依赖生效: IDEA打开右侧 maven projects 点击顶部的M图表(看下图) 出现如下对...

颖辉小居
9分钟前
0
0
Nginx proxy pass路由转发简单用法

一,在nginx中配置proxy_pass时的加不加/的问题要注意proxy_pass后的url最后的/当加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走如果没有/,则会把匹配的...

binhu
9分钟前
0
0
postcss替换sass-loader

实际需求: 已经使用了postcss autoprefixer ,而且sass-loader又依赖于node-sass,而且node-sass又是一堆坑(比如centos升级node6->node8后的安装权限问题),所以想简单使用Postcss 处理s...

吟啸_徐行
12分钟前
0
0
FISCO-BCOS v1.3.1 通过物料包安装记录

本文是从FISCO-BCOS的官方GitHub中的安装包进行安装的记录过程 1. Node.js环境准备 #nodejs安装 nvmsudo curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh......

undefine
15分钟前
0
0
Linux 系统日志、screen 工具

1、Linux 系统日志 日志重要吗?必须的,没有日志我们怎么知道系统状况?没有日志如何排查一个trouble?日志记录了系统每天发生的各种各样的事情,你可以通过它来检查错误发生的原因,或者受...

JolieLin
25分钟前
1
0
MAVEN打包时报错“程序包xxx不存在”

1.错误场景: 项目为springboot项目,maven聚合工程,分为app、api 、common、gongqiu四个项目,app、api 、common的父类是gongqiu,app和api依赖common,打包时报错common中的程序包xxx不存...

无语年华
27分钟前
0
0
CSS

一、简介 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题 外部样式表可以极大提...

blackfoxya
35分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部