matlab 矩阵大小及结构的改变

matlab 矩阵大小及结构的改变

函数名称函数功能
fliplr(A)矩阵每一行均进行逆序排列
flipud(A)矩阵每一列军进行逆序排列
flipdim(A,dim)生成一个在dim维矩阵A内的元素交换位置的多维矩阵
rot90(A)生成一个由矩阵A逆时针旋转90度而得到的新矩阵
rot90(A,k)生成一个由矩阵A逆时针旋转k*90度而得到的新矩阵
reshape(A,m,n)生成一个m*n维的矩阵
repmat(A,[m n…p])创建一个和矩阵A有相同元素的多维矩阵
shiftdim(A,n)矩阵的列移动n步
squeeze(A)返回没有空维的矩阵A
cat(dim,A,B)将矩阵A和B组合成一个dim维的多维矩阵
permute(A,order)根据向量order来改变矩阵A中的维数顺序
ipermute(A,order)进行命令permute的逆变换
sort(A)对一维或二维矩阵进行升序排序
sort(A,dim)对矩阵按指定放行进行升序排序dim=1每一列排序,dim=2每一行排序
sort(A,dim,mode)mode为‘ascend’进行升序排序,‘descend’降序排序
[B,IX]=sort(A,…)IX为排序后备元素在原矩阵中的位置的索引
MATLAB中,如果你想要改变矩阵大小,主要有以下几个操作: 1. **数组赋值**:通过直接创建新的矩阵并赋予原始矩阵的内容,可以改变矩阵大小。例如,如果有一个小矩阵A,你可以这样做: ```matlab new_size = [m n]; % 新的行数m和列数n B = zeros(new_size); % 创建全零的新矩阵 B(1:min(size(A)), 1:min(size(A,2))) = A; % 把A的部分复制到新矩阵B ``` 2. **`reshape`函数**:这个函数可以将矩阵重塑成指定的大小,但不会改变元素的顺序。例如: ```matlab C = reshape(A, new_rows, new_cols); ``` 3. **`squeeze`函数**:如果原矩阵有额外的维度(如单元素或全尺寸的维度),`squeeze`可以去掉这些维度,使得矩阵变大或变小。如果想增大矩阵,先判断是否有多余维度: ```matlab if size(A, 3) == 1 A = squeeze(A); % 如果第三个维度是1,去掉它 end ``` 4. **`cat`或`vstack`/`hstack`函数**:如果你想合并多个矩阵,可以使用这些函数增加矩阵的行数或列数。例如: ```matlab D = cat(2, A, E); % 水平堆叠A和E,增加列数 ``` 5. **数组切片**:也可以通过索引来截取一部分数据形成新的矩阵,虽然这不是真正意义上的改变大小,但它可以在保持原有数据的基础上构造一个新的视图。 记得检查新尺寸是否合理,避免因矩阵大小变化导致的错误。如果你需要改变矩阵的形状而保留所有数据,通常最好使用`reshape`而不是直接改变尺寸。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值