Matlab对矩阵进行旋转、左右上下翻转、重新排列

本文介绍了使用Matlab对矩阵进行操作的方法。先创建3×3矩阵,接着利用rot90()函数实现矩阵逆时针旋转,fliplr()和flipud()函数分别进行左右、上下翻转,还通过reshape()函数对矩阵行、列重新排列,同时提醒reshape操作不能改变元素个数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址:Matlab对矩阵进行旋转、左右上下翻转、重新排列
创建3×3矩阵
方法/步骤1:
首先键入以下代码创建一个3×3的矩阵:

clear

%创建一个3×3的矩阵A

A=[1 2 3;

4 5 6;

7 8 9;]

运行结果如图
在这里插入图片描述
rot90()旋转函数
方法/步骤1:
输入

B=rot90(A)

对矩阵A进行逆时针旋转,旋转角度为90度

结果如图在这里插入图片描述
方法/步骤2:
输入

B=rot90(A,2)

对矩阵A进行逆时针旋转,旋转角度为180度

结果如图

由此可见,矩阵旋转角度为rot(90,2)中参数2×90度。以此类推,可旋转3×90度,4×90度等等
在这里插入图片描述
左右、上下翻转
方法/步骤1:
fliplr()函数为矩阵左右翻转函数,具体操作为

B=fliplr(A)

对矩阵A进行左右翻转操作

结果如图
在这里插入图片描述
方法/步骤2:
flipud()函数为矩阵上下翻转函数,具体操作为

B=flipud(A)

对矩阵A进行上下翻转操作

结果如图
在这里插入图片描述
矩阵行、列重新排列
方法/步骤1:
reshape()函数为对矩阵的行和列进行重新排列的函数,需要注意的是,排列过程中不能改变矩阵中的元素个数,本例中元素个数为9,因此只能改变为9×1、1×9两种形式。

B=reshape(A,9,1)

将矩阵A由3×3改变为9×1即9行1列,结果如图在这里插入图片描述
方法/步骤2:
B=reshape(A,1,9)

将矩阵A由3×3改变为1×9即1行9列,结果如图
在这里插入图片描述
注意事项
请注意reshape不能改变元素个数

Pbds全称为Perfectly Balanced Red-Black Tree,是一种平衡查找树的数据结构,它是C++标准库中的`<ext/pb_ds/rb_tree>`模块提供的一种高级模板容器,主要用于高效地存储和查找数据。它是在红黑树基础上进行了优化,保证了常数级的平均时间复杂。 **特点:** 1. **自平衡**:插入、删除操作后的调整过程保证了树的高最大为log(n),这使得查询操作的时间复杂保持在O(log n)。 2. **内存效率高**:支持迭代器,可以像普通的数组或vector一样访问元素。 3. **模板化**:适用于各种数据类型,并支持自定义比较函数。 **实践示例(C++17开始引入std::any,旧版本需第三方库如Boost):** ```cpp #include <ext/pb_ds/tree_policy.hpp> // 引入PBDS策略 using namespace __gnu_pbds; // 使用namespace // 定义一个关联值类型的树模板,键为int,值为std::string template <typename K, typename V> using rb_tree = tree<K, null_type, less<K>, rb_tree_tag, tree_order_statistics_node_update>; int main() { // 创建一个rb_tree实例 rb_tree<int, std::string> myTree; // 插入元素 myTree.insert({5, "Hello"}); myTree.insert({10, "World"}); // 查找最小值 auto it = myTree.begin(); if (it != myTree.end()) { std::cout << "Smallest key is " << *it.first << " with value " << it->second << '\n'; } // 计算第3大的值 auto third_largest = myTree.order_of_key(3); // 获取值为3之前的所有节点个数 if (third_largest > 0) { it = myTree.lower_bound(third_largest); if (it != myTree.end()) { std::cout << "Third largest key is " << *it.first << " with value " << it->second << '\n'; } } return 0; } ``` **相关问题--:** 1. Pbds的红黑树相比标准的红黑树有哪些优势? 2. 如何使用Pbds的rb_tree进行范围查找? 3. 在实际项目中,何时会选择使用Pbds而不是普通的二叉搜索树?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值