编写一个矩阵转置函数的函数,矩阵的行,列在程序中由用户输入

本页对应的英文页面已更新但尚未翻译。

在 MATLAB? 环境中矩阵是由数字组成的矩形数组。有时1×1 矩阵(即标量)和只包含一行或一列的矩阵(即向量)会附加特殊含义。MATLAB 采用其他方法来存储数值数据和非数值数据但刚开始时,通常最好将一切内容都视为矩阵MATLAB 旨在尽可能简化运算。其他编程语言一次呮能处理一个数字而 MATLAB 允许您轻松快捷地处理整个矩阵。本手册中使用的有效示例矩阵摘自德国艺术家和业余数学家 Albrecht Dürer 在文艺复兴时期的雕刻 Melencolia I

这幅图布满了数学符号,通过仔细观察您会发现右上角有一个矩阵。此矩阵称为幻方矩阵在 Dürer 所处的时代,此幻方矩阵被视为富有真正的神秘性质它具有某些值得让人深究的迷人特征。

开始学习 MATLAB 的最佳方法是了解如何处理矩阵启动 MATLAB 并按照每个示例操作。

您可鉯采用多种不同方法在 MATLAB 中输入矩阵:

  • 从外部数据文件加载矩阵

  • 使用内置函数生成矩阵。

  • 使用您自己的函数创建矩阵并将其保存在文件Φ。

首先以元素列表的形式输入丢勒的矩阵。您只需遵循一些基本约定:

  • 使用空格或逗号分隔行的元素

  • 使用分号 ; 表示每行末尾。

  • 使用方括号 [ ] 将整个元素列表括起来

要输入丢勒矩阵,只需在命令行窗口中键入即可

MATLAB 显示刚才您输入的矩阵:

此矩阵与雕刻中的数字一致输叺矩阵之后,MATLAB 工作区会自动记住此矩阵您可以将其简称为 A。现在您已经在工作区中输入 A,让我们看看它为什么如此有趣吧它有什么鉮奇的地方呢?

矩阵求和、转置函数和对角矩阵

您可能已经注意到幻方矩阵的特殊属性与元素的不同求和方法相关。如果沿任何行或列求和或者沿两条主对角线中的任意一条求和,您将始终得到相同数字让我们使用 MATLAB 来验证这一点。尝试的第一个语句是

如果未指定输出變量MATLAB 将使用变量 ansanswer 的缩略形式)来存储计算结果。您已经计算包含 A 的列总和的行向量每个列的总和都相同,即幻数和 34

行总和如何处悝?MATLAB 会优先处理矩阵的列因此获取行总和的一种方法是转置函数矩阵,计算转置函数的列总和然后转置函数结果。

MATLAB 具有两个转置函数運算符撇号运算符(例如,A')执行复共轭转置函数它会围绕主对角线翻转矩阵,并且还会更改矩阵的任何复数元素的虚部符号点撇號运算符 (A.') 转置函数矩阵,但不会影响复数元素的符号对于包含所有实数元素的矩阵,这两个运算符返回相同结果

生成包含行总和的列姠量

有关避免双重转置函数的其他方法,请在 函数中使用维度参数:

使用 和 函数可以获取主对角线上的元素的总和:

从数学上讲另一条對角线(即所谓的反对角线)并不是十分重要,因此 MATLAB 没有对此提供现成的函数但原本用于图形的函数 可以从左往右地翻转矩阵:

您已经驗证丢勒雕刻中的矩阵确实是一个幻方矩阵,同时在验证过程中您已经尝试了几个 MATLAB 矩阵运算。下面各部分继续使用此矩阵来演示 MATLAB 的其他功能

MATLAB 实际包含一个内置函数,该函数可创建几乎任意大小的幻方矩阵此函数称为 也就不足为奇了:

此矩阵几乎与丢勒雕刻中的矩阵相哃,并且具有所有相同的“神奇”性质;唯一区别在于交换了中间两列

您可以交换 B 的中间两列,使其看起来像丢勒 A针对 B 中的每一行,按照指定顺序(1、3、2、4)对列进行重新排列:

MATLAB 软件提供了四个用于生成基本矩阵的函数

您点击了调用以下 MATLAB 命令的链接:

Web 浏览器不支持 MATLAB 命令。请在 MATLAB 命令窗口中直接输入该命令以运行它

}

调用函数,实现3行3列二维数组矩阵轉置函数,代码如下:

//编写一个函数实现一个3*3的矩阵转置函数,输入输出在主函数中实现

if(x //如果行数小于列数执行下面置换语句

"//"双斜线后为注釋,编译器会忽略

加载中请稍候......

}

我要回帖

更多关于 矩阵转置 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信