matlab自学(第一章 matlab基础知识)1.1

目录

1.1.3多维数组及其操作

1.多维数组的属性:

2.多维数组的操作

 1.1.4变量命名


1.1.3多维数组及其操作

1.多维数组的属性:

数组属性函数用法函数功能
尺寸size(A)按照行-列-页顺序,返回数组A每一维的大小
维度ndims(A)返回数组A具有的维度值
内存占用/数据类型whos返回当前工作区中的各个变量的详细信息

实例: 

>> a = cat(4 ,[9 2;6 5],[7 1;8 4]);
>> size(a)

ans =

     2     2     1     2

>> ndims(a)

ans =

     4

>> whos
  Name      Size            Bytes  Class     Attributes

  a         4-D                64  double              
  ans       1x1                 8  double              

>> a

a(:,:,1,1) =

     9     2
     6     5


a(:,:,1,2) =

     7     1
     8     4

2.多维数组的操作

 1.索引(单下标索引,多下标索引

   

>> a =randn(4,5,3)

a(:,:,1) =

    0.5377    0.3188    3.5784    0.7254   -0.1241
    1.8339   -1.3077    2.7694   -0.0631    1.4897
   -2.2588   -0.4336   -1.3499    0.7147    1.4090
    0.8622    0.3426    3.0349   -0.2050    1.4172


a(:,:,2) =

    0.6715    0.4889    0.2939   -1.0689    0.3252
   -1.2075    1.0347   -0.7873   -0.8095   -0.7549
    0.7172    0.7269    0.8884   -2.9443    1.3703
    1.6302   -0.3034   -1.1471    1.4384   -1.7115


a(:,:,3) =

   -0.1022   -0.8649    1.0933   -1.2141   -0.7697
   -0.2414   -0.0301    1.1093   -1.1135    0.3714
    0.3192   -0.1649   -0.8637   -0.0068   -0.2256
    0.3129    0.6277    0.0774    1.5326    1.1174

>> a(3,2,2)  %访问第三行第二列第二页的元素

ans =

    0.7269

>> a(27) %访问a中第27个元素(即第三行第二列第二页的元素)

ans =

    0.7269

2.维度操作

(1)reshape

改变多维数组的形状,但线性存储位置不变(即顺序仍按照原先行-列-页优先级排列)

>> a=[1 4 7 0;2 5 8 14;3 6 9 12];
>> b = reshape(a,2,6)

b =

     1     3     5     7     9    14
     2     4     6     8     0    12
>>  b= reshape(a,2,[])

b =

     1     3     5     7     9    14
     2     4     6     8     0    12

 

(2)permute 与ipermute

 permte重新定义后的多维数组是把原来在某一维度上的所有元素移动到新的维度上,

可改变多维数组线性存储的位置

ipermute可看做perimute的逆函数

permute函数是Matlab中的一个重要函数,用于对数组进行维度重排。具体用法如下:

语法:B = permute(A,order)

参数说明:

A:需要重排的数组

order:一个整数数组,用于指定A中各维度的新顺序。例如,order=[2 1 3]表示将A的第1维和第2维交换位置。

返回值:B为重排后的数组。

示例:

A = rand(2,3,4); % 生成一个2x3x4的随机数组 B = permute(A,[2 1 3]); % 将A的第1维和第2维交换位置 size(B) % 输出B的大小,应为3x2x4

上述示例中,我们生成了一个2x3x4的随机数组A,然后使用permute函数将A的第1维和第2维交换位置,得到了一个3x2x4的新数组B。

>> a = randn(3,3,2)

a(:,:,1) =

   -1.0891    1.1006   -1.4916
    0.0326    1.5442   -0.7423
    0.5525    0.0859   -1.0616


a(:,:,2) =

    2.3505   -0.1924   -1.4023
   -0.6156    0.8886   -1.4224
    0.7481   -0.7648    0.4882

>> b=permute(a,[3 1 2])  

b(:,:,1) =

   -1.0891    0.0326    0.5525
    2.3505   -0.6156    0.7481


b(:,:,2) =

    1.1006    1.5442    0.0859
   -0.1924    0.8886   -0.7648


b(:,:,3) =

   -1.4916   -0.7423   -1.0616
   -1.4023   -1.4224    0.4882

>> ipermute(b,[3 1 2])

ans(:,:,1) =

   -1.0891    1.1006   -1.4916
    0.0326    1.5442   -0.7423
    0.5525    0.0859   -1.0616


ans(:,:,2) =

    2.3505   -0.1924   -1.4023
   -0.6156    0.8886   -1.4224
    0.7481   -0.7648    0.4882

3.多维数组参与数学计算

》sum、mean等函数可以对多维数组中第一个不为1的维度上的向量进行计算 

》sin、cos等函数则对多维数组中的每一个单独元素进行计算

》eig等针对二维数组的运算符号则需要用指定的页面上的二维数组作为输入函数 

>> a = randn(2,5,2)

a(:,:,1) =

   -0.1774    1.4193    0.1978   -0.8045    0.8351
   -0.1961    0.2916    1.5877    0.6966   -0.2437


a(:,:,2) =

    0.2157   -1.1480    0.7223   -0.6669   -0.0825
   -1.1658    0.1049    2.5855    0.1873   -1.9330

>> sum(a)

ans(:,:,1) =

   -0.3734    1.7109    1.7855   -0.1078    0.5914


ans(:,:,2) =

   -0.9502   -1.0431    3.3077   -0.4796   -2.0155

>> sin(a)

ans(:,:,1) =

   -0.1764    0.9885    0.1965   -0.7205    0.7414
   -0.1948    0.2875    0.9999    0.6416   -0.2413


ans(:,:,2) =

    0.2140   -0.9119    0.6611   -0.6185   -0.0824
   -0.9191    0.1047    0.5279    0.1862   -0.9351

 1.1.4变量命名

1.常量:程序语言中取不变值的量

2.系统预定义的变量:如圆周率pi

        

常量符号常量含义
i或j虚数单位
Inf 或inf正无穷大
NaN不定时,表示非数值量
pi圆周率的双精度
eps容差变量,某量的绝对值小于eps,可以认为此量为0
Realmin或realmin最小浮点数,二的-1022次方
RealMa最大的浮点数   二的1023次方

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值