zoukankan      html  css  js  c++  java
  • 理解矩阵转置及矩阵转置算法

    矩阵是二维数组,行宽和列宽均大于2的二维数组是矩阵(易语言中)。

    我们可以这样理解:一堆数据排列成一个阵,这个阵的形状是矩形,于是咱们称阵(这种形式)为矩阵。

    转置是矩阵的一种算法,就像四则运算(即加、减、乘、除)那样的;它将矩阵的每一行变成列,那么原先的每一列就会变成行,简单点说就是行列互换。

    【矩阵转置前后】

     

    【易语言 - 矩阵转置算法】

    (算法不一定最优,只是比较简单罢了)

    (算法由我[砹小翼]编写,没有参考其它资料)

     1 .版本 2
     2 
     3 .子程序 整数矩阵转置, 逻辑型, 公开, 对一个整数矩阵进行“转置”运算,可理解为行和列互相调换。数组不为整数矩阵则返回假。
     4 .参数 欲转置的整数矩阵, 整数型, 数组
     5 .参数 存放结果的变量, 整数型, 参考 可空 数组, 如果不提供此参数,则将结果返回给矩阵所在变量;如果提供此参数,则矩阵不变,结果存放在此参数。
     6 .局部变量 一维下标, 整数型
     7 .局部变量 二维下标, 整数型
     8 .局部变量 i, 整数型
     9 
    10 一维下标 = 取数组下标 (欲转置的整数矩阵, 1)
    11 二维下标 = 取数组下标 (欲转置的整数矩阵, 2)
    12 .如果真 (一维下标 < 2 或 二维下标 < 2 或 取数组下标 (欲转置的整数矩阵, 3) ≠ 0)
    13     返回 (假)
    14 .如果真结束
    15 .计次循环首 (一维下标 × 二维下标, i)
    16     加入成员 (存放结果的变量, 欲转置的整数矩阵 [i])
    17     ' 易语言中,非线性数组可当作线性数组读取。
    18     ' 设数组为[4,3],依照读取顺序,对应关系为:
    19     ' [1] : [1] [1]
    20     ' [2] : [1] [2]
    21     ' [3] : [1] [3]
    22     ' [4] : [2] [1]
    23     ' [5] : [2] [2]
    24     ' ...
    25     ' [9] : [3] [3]
    26     ' [10] : [4] [1]
    27     ' [11] : [4] [2]
    28     ' [12] : [4] [3]
    29 .计次循环尾 ()
    30 重定义数组 (存放结果的变量, 真, 二维下标, 一维下标)
    31 .如果真 (是否为空 (存放结果的变量))
    32     复制数组 (欲转置的整数矩阵, 存放结果的变量)
    33 .如果真结束
    34 返回 (真)

    【易语言 - 矩阵判断】

    易语言中,只要二维数组两个维度的下标都大于1,那么二维数组一定是矩阵。

    详细代码:(其实很简单)

    1 .版本 2
    2 
    3 .子程序 是否为整数矩阵, 逻辑型, 公开, 检验一个二维数组是否为整数矩阵,是则返回真,否则返回假。
    4 .参数 欲检查的数组, 整数型, 数组
    5 
    6 返回 (取数组下标 (欲检查的数组, 1) ≥ 2 且 取数组下标 (欲检查的数组, 2) ≥ 2 且 取数组下标 (欲检查的数组, 3) = 0)
    本文为博主原创,禁止转载或摘编。
  • 相关阅读:
    [Python] 登录人人网2011版
    [WPF] 自定义窗体样式
    [Python] 控制台输入密码的方法
    [Python] 字符串加密解密
    [WPF] 模仿AMD LIVE! EXPLORER界面
    [Python] Visual Studio 2008 集成 IronPython 开发环境
    mysql表类型(存储引擎)
    logstash收集nginx访问日志
    linux设置开机启动脚本
    logstash安装log4j插件
  • 原文地址:https://www.cnblogs.com/aixcyi/p/5804773.html
Copyright © 2011-2022 走看看