matlab 基础知识1
2024-09-04 21:05:40
一、数组和矩阵
注意 逗号 和 分号 的区别
向量生成方式:
传统方式:行向量 :空格,逗号
列向量 :分号,回车
函数方式:
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]) = [ ]
最新文章
- PLSQL note
- ABP理论学习之领域服务
- rem 与 px 手机页面自适应
- 每天学点前端——基础篇1:css盒子模型,绝对定位和相对定位
- ES6 WeakSet数据结构 与Set十分相似
- Ubuntu及Windows ADB设备no permissions的解决方案
- C++调试 输出数组内容和数组名
- PHP MYSQL 数据库配置连接
- 想弄清楚LIBEVENT和EPOLL之类的关系,不要因为走得太急而迷失了方向
- 【Android XMPP】 学习资料收集贴(持续更新)
- JDK源码阅读(三) Collection<;T>;接口,Iterable<;T>;接口
- 15个网页设计必备的Google Chrome 扩展
- angularjs中{{}} 加载出现闪烁问题
- &#39;ManyRelatedManager&#39; object is not iterable
- FileUtil
- ExceptionLess 本地部署小结
- 驱动中如何给ring3层应用程序提权
- mysql创建用户并分配权限
- 【转】JAVA解压.TAR.Z及.ZIP文件
- 用ab的post方式进行测试
热门文章
- e4a 记录
- octotree — 树形展示 Github 项目代码
- Springboot Rabbitmq 使用Jackson2JsonMessageConverter 消息传递后转对象
- Spring+SpringMvc+Hibernate整合记录
- Git+TortoiseGit使用帮助
- ASP.NET Core中使用Dapper
- Spring4学习回顾之路07- 通过工厂方法配置Bean
- (0)c++入门——认识指针与数组——指针即是内存中地址。
- python病毒
- tensorflow零起点快速入门(4) --入门常用API