matlab学习笔记之基础知识(一)
一、两种特殊数据类型
1.元胞数组
元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞(cell)。和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的。
创建方式:
1)直接赋值
>> a={'matlab',20;ones(2,3),1:10}
a =
'matlab' [ ]
[2x3 double] [1x10 double]
2)通过cell函数创建
>> b = cell(,);
b{1,1} = 'matlab';
b{1,2} = ;
b{2,1} = ones(,);
b{2,2} = :;
>> b b = 'matlab' [ ]
[2x3 double] [1x10 double]
2.结构体
结构体是matlab中另一个能够存储不同类型数据的数据类型,它与元胞数组的区别在于结构体是以指针的方式来传递数据,而元胞数组是通过值传递。
创建方式:
1)直接赋值
>> A.b1 = ;
>> A.b2 = ones();
>> A.b3 = 'Matlab 2013a';
>> A
A =
b1:
b2: [3x3 double]
b3: 'Matlab 2013a'
2)通过struct函数创建
结构体变量名 = struct(属性名1, 属性值1, 属性名2, 属性值2,…)
>> B = struct('b1',,'b2',ones(),'b3','hello');
>> B
B =
b1:
b2: [3x3 double]
b3: 'hello'
二、matlab常用运算
已知线性方程组 Ax = B
1.方程的解
(1) 求逆运算 x = inv(A) * B
(2) 左除运算 x = A\B
>> A = [,,;-,,;,-,-];
>> B = [;-;-];
>> x = inv(A)*B;
>> x
x = 1.0200 -14.0000 9.7200 >> y = A\B;
>> y
y = 1.0200 -14.0000 9.7200
2.矩阵的秩
R = rank(A)
>> r = rank(A);
>> r
r =
3.矩阵的特征值与特征向量
[v, lambda] = eig(A)
>> [v, lambda] = eig(A)
v =
0.8013 -0.1094 -0.1606
0.3638 -0.6564 0.8669
0.4749 0.7464 -0.4719
lambda =
9.7326
-3.2928
1.5602
4.矩阵的乘幂与开方
>> A1 = A ^; %乘幂 >> A2 = sqrt(A); %开方 >> A1 A1 = >> A2 A2 = 2.4495 + .0000i 1.7321 + .0000i 2.0000 + .0000i 0.0000 + .4142i 2.2361 + .0000i 2.6458 + .0000i 2.8284 + .0000i 0.0000 + .0000i 0.0000 + .7321i
5.矩阵的指数与对数
>> y1 = exp(A); %指数
>> y2 = log(A); %对数
>> y1
y1 =
1.0e+03 *
0.4034 0.0201 0.0546
0.0001 0.1484 1.0966
2.9810 0.0004 0.0000
>> y2
y2 =
1.7918 + .0000i 1.0986 + .0000i 1.3863 + .0000i
0.6931 + .1416i 1.6094 + .0000i 1.9459 + .0000i
2.0794 + .0000i 0.0000 + .1416i 1.0986 + .1416i
6.矩阵的提取与翻转
提取:
上三角(右上):y1 = triu(A)
下三角(左下):y2 = tril(A)
对角线:y3 = diag(A)
翻转:
上下翻转:y4 = filpud(A)
左右翻转:y5 = filplr(A)
沿列翻转:y6 = flipdim(A,1)
沿行翻转:y7 = filpdim(A,2)
逆时针旋转翻转:y8 = rot90(A)
>> A_triu = triu(A)
A_triu =
-
>> A_tril = tril(A)
A_tril =
-
- -
>> A_diag = diag(A)
A_diag =
-
>> A_ud = flipud(A)
A_ud =
- -
-
>> A_lr = fliplr(A)
A_lr =
-
- -
>> A_l = flipdim(A,)
A_l =
- -
-
>> A_h = flipdim(A,)
A_h =
-
- -
>> A_r90 = rot90(A)
A_r90 =
-
-
-
7.“商”及“余”多项式
[q, r] = deconv(p1, p2),p1为输入分子多项式系数,p2为输入分母多项式系数,q为输出多项式的“商”,r为输出多项式的“余”。
求多项式
的“商”和“余”。
>> p1 = conv([,,],conv([,],[,]))
p1 =
>> p2 = [,,]
p2 =
>> [q,r] = deconv(p1,p2)
q =
-
r =
未完待续。。。
matlab学习笔记之基础知识(一)的更多相关文章
- MyBatis:学习笔记(1)——基础知识
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...
- C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)
一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...
- C#学习笔记(基础知识回顾)之值传递和引用传递
一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...
- C#学习笔记(基础知识回顾)之值类型和引用类型
一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...
- Quartz学习笔记:基础知识
Quartz学习笔记:基础知识 引入Quartz 关于任务调度 关于任务调度,Java.util.Timer是最简单的一种实现任务调度的方法,简单的使用如下: import java.util.Tim ...
- .net学习笔记---xml基础知识
一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基 ...
- Docker的学习笔记(一)基础知识
概述 本人最近在学习docker相关的知识,既是工作本身的需要也是自己对技术的追求的必要,以后我也会推出容器相关的随笔,既可以增长自己的知识,也可以和读者广泛交流,岂不乐乎?话不多说.第一篇先介绍do ...
- Scala学习笔记--正则表达式基础知识、如何在scala内使用
正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www. ...
- (C/C++学习笔记) 一. 基础知识
一. 基础知识 ● 程序和C/C++ 程序: 根据Wirth (1976), Algorithms + Data Structures = Programs. Whence C: 1972, Denn ...
随机推荐
- 二维数组,锯齿数组和集合 C# 一维数组、二维数组(矩形数组)、交错数组(锯齿数组)的使用 C# 数组、多维数组(矩形数组)、锯齿数组(交叉数组)
二维数组,锯齿数组和集合 一.二维数组 二维数组:一维数组----豆角二维数组----表格 定义:1.一维数组:数据类型[] 数组变量名 = new 数据类型[数组长度];数据类型[] 数组变量名 = ...
- VUE入门实例,模版组件用法
这里每一个例子可以直接拷进body运行. 本系列为学习记录,并非大神教学案例. 仅仅整理用法,至于VUE的原理,设计模式等等暂不讨论,文中如有不对,还请大家帮忙指正,万分感激. 下一篇会写父子组件交互 ...
- php私有成员private的程序题目
class base { private $member; function __construct() { echo __METHOD__ . "(begin)\n"; $thi ...
- 修改IP核参数
有时需要重定制IP核时,需要打开IP核,可以试试用core generator 工具打开coregen.cgp文件.在core generator下修改IP核参数.
- 使用pycharm手动搭建python语言django开发环境(五) 使用日志模块打日志
1.在项目的settings.py中增加日志相关声明 #增加日志设置 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'fil ...
- c#的bug?
在群里面有人提出了这么一个诡异的问题,请问15.5%3.1=? 然后,我就去看了看,因为他们说结果是3.1!!!
- UI-10-plist文件及UITableView的高级应用①
课程要点: plist文件的新建与读取 给UITableView设置变化的值 单元格的删除.插入及刷新 plist文件的新建与读取 新建plist Commadn+N,iOS->Resouce- ...
- 《排序算法》——堆排序(大顶堆,小顶堆,Java)
十大算法之堆排序: 堆的定义例如以下: n个元素的序列{k0,k1,...,ki,-,k(n-1)}当且仅当满足下关系时,称之为堆. " ki<=k2i,ki<=k2i+1;或k ...
- NDK 安装小结
建议先看后面的错误,可以先执行那些命令以免出现相关问题. chmod a+x android-ndk-r10c-linux-x86_64.bin ./android-ndk-r10c-linux-x8 ...
- 关于 SQLNET.AUTHENTICATION_SERVICES 验证方式的说明
今天去客户那里巡检,客户提出为了提高数据库安全性考虑,须要改动sys/systempassword,并通过数据库验证方式来代替默认的操作系统方式,如今我来把这两种验证方式总结一下. 操作系统验证.即通 ...