一个专注于计算机编程和硬件学习的博客主
25/12
2018

MATLAB入门(二)

数组索引

双下标索引

  • 方法
    数组名(所在行,所在列)

单下标索引

  • 方法
    数组名(所在序列)*列优先排序

双下标索引转换为单下标索引

  • 方法
    单下标索引=sub2ind(size,m,n)
    size数组大小:size(数组名)

单下标索引转换为双下标索引

  • 方法
    [行,列]=ind2sub(数组大小,单下标索引)
    数组大小:size(数组名)

数组扩展

cat函数

  • 方法
    扩展结果=cat(标识,数组1,数组2,···)
    标识:1或2(1是列组合,2是行组合)
    vertcat函数
  • 方法
    扩展结果=vertcat(数组1,数组2,···)
    相当于:cat(1,组合数组···)

horzcat函数

  • 方法
    扩展结果=horzcat(数组1,数组2,···)
    相当于:cat(2,组合数组···)

块操作

repmat函数

  • 方法
    数组B=repmat(数组A,m,n)
    数组A,重复m行,n列

blkdiag函数

  • 方法
    数组D=blkdiag(数组A,数组B,数组C,···)

kron函数

  • 方法
    数组c=kron(数组A,数组B)
    对应位置上A的值去乘B的每一个元素

索引扩展

直接指定当前数组外的一个位置,并对其进行赋值。
确保数组以最小代价完成扩展

1.png

2.png

3.png

4.png

5.png

数组裁剪

罗列序号

  • 直接保留的序号罗列出来
    裁剪结果数组=原数组(保留的行,保留的列)
    数组B=数组A([1,2],[4,5])裁剪数组A的1到2行的4到5列

冒号裁剪

  • 区间
    m:n(m:初始值,n:终值值)(上面的A([1,2],[4,5])就可以换成a(1:2,4:5)
  • 等差序列
    m:k:n(m:初始值,k:等差值,n:终止值)
  • 全部
    冒号:(当前索引位置所有能够取得的值,所有行,所有列)
  • 整行整列
    格式:数组(要删除的行,:)=[]数组(:,要删除的列)=[]

添加新评论