MATLAB-数组的使用

randperm–数组随机排列

  1. r= randperm(n) 返回包含从 1 到 n 没有重复元素的整数随机排列的行向量。
  2. r = randperm(n,k) 返回包含在 1 到 n 之间随机选择的 k 个唯一整数的行向量。
  3. 使用实例
 A=[1:3;4:6];%创建A 数组
 r = randperm(size(A,1));%按照A的行数,生成随机序列
 B=A(r,:);`%随机排列后新的A

结果:
在这里插入图片描述

这里可以看到,生成的随机排序顺序为【2,1】,即原来第二行放到第一行,原来第一行放到第二行。
(PS:实例这里只有两行,排序效果只有两种,【1,2】,【2,1】)

官方帮助文件

permute–置换数组维度

B = permute(A,dimorder) 按照向量 dimorder 指定的顺序重新排列数组的维度。例如,permute(A,[2 1]) 交换矩阵 A 的行和列维度。

官方帮助文件

cat–串联数组

C = cat(dim,A1,A2,…,An) 沿维度 dim 串联 A1、A2、…、An。

 data_1=permute(data1,[3 1 2 4]);
 data_2=permute(data2,[3 1 2 4]);
 data_3=permute(data3,[3 1 2 4]);
 data_4=permute(data4,[3 1 2 4]);
traindata=cat(4,data_1,data_2,data_3,data_4);%将这四个矩阵沿着第四维度串联

在这里插入图片描述

官方帮助文件

squeeze–删除数组中长度为1的维度

A=squeeze(B);

reshape–重构数组

B = reshape(A,9,2)%多维度数组重构为矩阵`
B = reshape(A,[5,2])%向量重构为矩阵
B = reshape(A,[],2)%矩阵重构为指定列数

repmat–重复数组副本

A = [1 2; 3 4]
B = repmat(A,[2 3 2]);%将矩阵副本重复到 2×2×3 块排列中。


B = repmat(A,n) 返回一个数组,该数组在其行维度和列维度包含 A 的 n 个副本。A 为矩阵时,B 大小为 size(A)*n。
B = repmat(A,r1,...,rN) 指定一个标量列表 r1,..,rN,这些标量用于描述 A 的副本在每个维度中如何排列。当 A 具有 N 维时,B 的大小为 size(A).*[r1...rN]。例如:repmat([1 2; 3 4],2,3) 返回一个 4×6 的矩阵。

数组中的:

对于一个三维矩阵c;

a=[1 2 3 ;4 5 6 ]
c=cat(3,a,a)
c(:,:,1)=
1 2 3
4 5 6 
c(:,:)=
1 2 3 1 2 3 
4 5 6 4 5 6 
c(:)=%121
4  
2
5
3
6
1
4  
2
5
3
6

sort-数组的排序

b=sort(a);%按照升序对a进行排序
b=sort(a,dim);%a沿着维度dim进行排序**1是列,2是行**
b=sort(a,'ascend'/'descend');%第一个是升序,第二个是降序

dig-创建对角矩阵

x=dig(a);返回a主对角线上的列向量
x=dig(a,k);%返回a第k条对角线上元素的列向量

eig–特征值和特征向量

e=eig(a);%返回列向量
[v,d]=eig(a);%返回右特征向量v,返回特征值的对角阵v

magic–幻方矩阵

m=magic(n);%返回由1到N²的整数构成的n*n矩阵
每列元素和=每行元素和

max–返回最大值及其位置

[pro,loc]=max([a,b,c])返回最大值pro和最大值所在位置loc
Matlab元胞数组可以用来存储不同类型的数据,可以存储任意数量的元素。以下是一些常见的元胞数组使用方法: 1. 创建元胞数组 要创建一个空的元胞数组,只需使用空括号即可: ```matlab cellArray = {}; ``` 也可以在创建时指定元素: ```matlab cellArray = {'hello', [1 2 3], 5, 'world'}; ``` 2. 访问元胞数组中的元素 要访问元胞数组中的元素,可以使用括号运算符和索引来获取元素。例如,要访问第一个元素,可以使用以下代码: ```matlab cellArray{1}; ``` 3. 添加元素到元胞数组中 可以使用花括号运算符{}或括号运算符()来将元素添加到元胞数组中。例如,要将一个字符串添加到元胞数组中,可以使用以下代码: ```matlab cellArray{end+1} = 'new element'; ``` 这将在元胞数组的末尾添加一个新元素。 4. 删除元胞数组中的元素 要从元胞数组中删除元素,可以使用括号运算符()和索引。例如,要删除第三个元素,可以使用以下代码: ```matlab cellArray(3) = []; ``` 这将从元胞数组中删除第三个元素。 5. 使用for循环访问元胞数组 可以使用for循环遍历元胞数组中的所有元素。例如,以下代码将遍历元胞数组并打印每个元素: ```matlab for i = 1:length(cellArray) disp(cellArray{i}) end ``` 这会按顺序打印元胞数组中的每个元素。 6. 将元胞数组转换为普通数组 有时需要将元胞数组转换为普通数组,可以使用cell2mat函数。例如,以下代码将包含数字的元胞数组转换为普通数组: ```matlab cellArray = {[1 2 3], [4 5 6], [7 8 9]}; numArray = cell2mat(cellArray); ``` 这会将元胞数组转换为一个包含所有元素的普通数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰果豆豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值