• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

matlab 基础知识1

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、数组和矩阵
注意 逗号 和 分号 的区别

 

向量生成方式:

传统方式:行向量 :空格,逗号
列向量 :分号,回车

函数方式

x = linspace(a,b,n)

  等分关系,从a 到 b, n等分。n默认为100

 x = logspace(a,b,n)

  生成[10^a,10^b]之间的数n个。n默认为50

二、二维数组

直接创建:

A = [1 2 3; 4 5 6]

  

函数生成:

ones(m,n)     %全部为1
eye(m,n)      %主对角线为1
zeros(m,n)    %全部为0
% 随机数系列:
rand(m,n)    %生成均匀分布的伪随机数,分布在[0,1]之间
randn(m,n)    %生成标准正态分布的伪随机数,均值为0,方差为1
randi(max,m,n)    %生成全为整数的m行n列随机数,数值分布在闭区间[1,max]
randi([imin,imax],m,n)  %生成全为整数的m行n列随机数,数值分布在闭区间[imin,imax]
% 以上函数若只有一个参数,则表示为n行n列

三、数组的大小

size函数 测试数组或矩阵的大小

 d = size(数组名)

 d 为返回值,为一个行向量  d = [m n]

 x = [3 2];
 d = size(x)

 >> d =
     1  2
  表示 x 是一个1行2列的向量

x = ones(3,4,5);
d = size(x)

  

 [m,n] = size(数组名)

 m返回行数,n返回列数

  x = [4,5,6];
  [m,n] = size(x)

 

length函数  返回数组中尺度较大维度的长度

 

形式:
  空        返回0
  标量       返回1
  向量      返回实际个数
  多为数组    返回较大维度

 

a = [];
length(a)

b = [3];
length(b)

c = [1 2 3 4 5];
length(c)

d = ones(4,5);
length(d)

  

numel函数  返回数组中总的元素的个数

% m行n列,则总个数为m*n
 a = ones(4,5);
 numel(a)
           

  

四、索引

双下表索引

A = magic(6); % 行,列,对角线上的和都是相等的
A(4,3)

单下表索引

% 数组名(所在序号) 
% 列优先排序
 A = [ 1 3 54; 5 6 7; 89 0 7 ];
 A(7)

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

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

 A = [ 1 3 54; 5 6 7; 89 0 7 ];
 ans1 = A(3,2)
  num = sub2ind(size(A),3,2)
 ans2 = A(num)

  利用sub2ind(size,m,n) 函数可以 将二维数组当成一个一维数组来进行处理

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

% 方法
% [行,列] = ind2sub(size,num)
%       数组大小: size(数组名)

A = magic(7)
[m,n] = ind2sub(size(A),13)
ans1 = A(13)
ans2 = A(6,2)

  

五、 数组扩展

 cat( ) 函数

% 扩展结果 = cat(标识,数组1,数组2,...)
%       标识:1(表示按列排) 组合数组 必须有相同列
%          或2(表示按行排)组合数组 必须有相同行

A = ones(3,4);
B = zeros(2,4);
C = cat(1,A,B)

  

A = ones(3,4);
B = zeros(3,5);
C = cat(2,A,B)

 

 vertcat( )函数

% 扩展结果 = vertcat(数组1,数组2,...)
%       将多个数组在垂直方向上组合在一起
%   相当于:cat(1,数组1,数组2,...)  必须要列数一致

A= ones(3,4);
B = zeros(2,4);
C = vertcat(A,B)

  

horzcat( ) 函数

% 扩展结果 = horzcat(数组1,数组2,...)
%       将多个数组在水平方向上组合
%  相当于: cat(2,数组1,数组2,...)  必须行数要一致

A = ones(4,5);
B = eye(4,3);
C = horzcat(A,B)

  

索引扩展

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

A = eye(3)
A(2,5) = 5

A(4,4) = 9

A(6,6) = 11

  

六、块操作

 repmat( )函数

% 数组B = repmat(数组A,m,n)
 A = magic(3)
 B = repmat(A,2,3)

  

blkdiag( )函数

% 数组D = blkdiag(数组A,数组B,数组C,...)
%   数组A,B,C,...按照对角线拼接
A = ones(3)
B = magic(4)
C = blkdiag(A,B)

  

kron( )函数

%  数组C = kron(数组A,数组B)
%   最后的结构: C与A一致;
%   每个元素: C与B一致,即C = A对应位置乘以B的每个元素
A = [0 1; 2 3]
B = ones(3)
C = kron(A,B)

C = kron(B,A)

  

七、数组裁剪

罗列序号

% 直接将需要保留的序号罗列出来
% 裁剪结果数组 = 原数组(保留的行,保留的列)

A =  magic(6)
B =A([1 3 6],[ 2,4,5])

C = A([1,3,6],[5,4,2])

 冒号 

% 分类:①区间  ②等差序列  ③全部

% ① 区间:m:n  其中m表示初始值,n表示终止值

A = magic(6)
B =A(1:3,3:6)

  

% ②等差序列   m:k:n  初始值:等差值:终止值

A  = magic(5)
B = A(1:2:5,2:5)

% ③全部
% 冒号 : 
% 当前索引位置所有能够取得的值。所有行,所有列

A = magic(5)
B = A(1:2:4,:)

删除整行整列

% 格式
%   数组(要删除的行, : ) =[ ]; 
%   数组( : , 要删除的列) =[ ];

A = magic(7)
A([1:3],:)=[ ]
A(:,[2:5]) = [ ]

  

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi基本图像处理代码发布时间:2022-07-18
下一篇:
Delphi中的容器类发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap