使用matlab编写一个自定义函数,使得其能够对传入的 n×n 的二维矩阵 matrix 顺时针旋转90度。
时间: 2024-10-12 12:17:55 浏览: 1
在MATLAB中,你可以使用内置的旋转函数`rot90`来实现这个功能,但是如果你想自己编写一个自定义函数来实现这个功能,你可以参考以下的步骤。
首先,你需要创建一个自定义函数,这个函数接收一个二维矩阵作为输入,然后返回一个旋转90度的版本。这里是如何用MATLAB实现这个函数的例子:
```matlab
function rotatedMatrix = rotateMatrix90(matrix)
% 获取矩阵的大小
[n, n] = size(matrix);
% 检查输入是否是正方形
if n ~= n
error('输入矩阵必须是正方形');
end
% 创建旋转矩阵
rotationMatrix = [1 -1; 2 2];
% 使用旋转矩阵进行矩阵旋转
rotatedMatrix = zeros(n);
for i = 1:n
for j = 1:n
row = (i - 1) * n + j;
rotatedMatrix((j - 1) * n + i) = rotationMatrix(row, :);
end
end
end
```
这个函数首先检查输入的矩阵是否是正方形,然后创建一个旋转矩阵,最后使用这个旋转矩阵对输入的矩阵进行旋转。注意这个函数会将原矩阵的列重新组织为行,并且会在原矩阵的基础上进行操作,而不是创建一个新的矩阵。
使用这个函数的例子如下:
```matlab
matrix = [1 2 3; 4 5 6; 7 8 9]; % 原矩阵
rotatedMatrix = rotateMatrix90(matrix); % 旋转后的矩阵
disp(rotatedMatrix); % 输出旋转后的矩阵
```
希望这个回答能帮助到你!