一、两种特殊数据类型

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学习笔记之基础知识(一)的更多相关文章

  1. MyBatis:学习笔记(1)——基础知识

    MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...

  2. C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

    一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...

  3. C#学习笔记(基础知识回顾)之值传递和引用传递

    一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...

  4. C#学习笔记(基础知识回顾)之值类型和引用类型

    一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...

  5. Quartz学习笔记:基础知识

    Quartz学习笔记:基础知识 引入Quartz 关于任务调度 关于任务调度,Java.util.Timer是最简单的一种实现任务调度的方法,简单的使用如下: import java.util.Tim ...

  6. .net学习笔记---xml基础知识

    一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基 ...

  7. Docker的学习笔记(一)基础知识

    概述 本人最近在学习docker相关的知识,既是工作本身的需要也是自己对技术的追求的必要,以后我也会推出容器相关的随笔,既可以增长自己的知识,也可以和读者广泛交流,岂不乐乎?话不多说.第一篇先介绍do ...

  8. Scala学习笔记--正则表达式基础知识、如何在scala内使用

    正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www. ...

  9. (C/C++学习笔记) 一. 基础知识

    一. 基础知识 ● 程序和C/C++ 程序: 根据Wirth (1976), Algorithms + Data Structures = Programs. Whence C: 1972, Denn ...

随机推荐

  1. spring学习笔记(五)

    1.后置通知 需求:调用相应业务方法后,完成资源的关闭. a. 在beans.xml中配置 .... <beans> <!--配置被代理对象--> <bean id=&q ...

  2. ZOJ 3827 Information Entropy (2014牡丹江区域赛)

    题目链接:ZOJ 3827 Information Entropy 依据题目的公式算吧,那个极限是0 AC代码: #include <stdio.h> #include <strin ...

  3. android旋转动画的两种实现方式

    在android开发,我们会常常使用到旋转动画,普通情况下旋转动画有两种实现方式,一种是直接通过java代码去实现,第二种是通过配置文件实现动画.以下是两种动画的基本是用法: 纯Java代码实现: / ...

  4. FPGA组成、工作原理和开发流程

    FPGA组成.工作原理和开发流程 原创 2012年01月07日 09:11:52 9402 0 4 ********************************LoongEmbedded***** ...

  5. leetcode_Power of Two_easy

    Given an integer, write a function to determine if it is a power of two. 题目意思:推断某个数是否是2的幂. 方法:直接进行bi ...

  6. QT错误笔记-Qt Creator needs a compiler set up to build. Configure a compiler in the kit options.

    上午在linux环境下,使用QT编译一段C++代码,出现下列错误: 最近在stackoverflow上找到了答案: i was also having the same problem so what ...

  7. android proguard 保留内部类

    今天在使用Proguard keep一个 静态内部类的时候,混淆完之后一直找不到那个静态内部类,内心抓狂啊. 最后在stackoverflow上找到了答案: -keepattributes Excep ...

  8. Java并发编程(七)线程封闭

    当访问共享的可变数据时,通常需要使用同步.一种避免使用同步的方式就是不共享数据. 如果仅在单线程内访问数据,就不需要同步.这种技术被称为线程封闭(Thread Confinement),它是实现线程安 ...

  9. easyUI combox静态动态联动

    easyUI重写了select,取而代之的是combobox,有如下几种方式可以创建一个combobox 1.使用select标签,并加上class="easyui-combobox&quo ...

  10. 怎么用ChemDraw Pro绘制不定域共轭环

    ChemDraw Pro 14作为一款非常受欢迎的化学绘图软件,不论是化学分子结构.轨道,还是符号.箭头等图形都可以用它轻松的绘制出来,而且在其工具栏中,集成了10种环工具,可以对不同种类.不同尺寸的 ...