| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6333 人关注过本帖, 3 人收藏
标题:★如何将座次表旋转180度?
只看楼主 加入收藏
沙枣
Rank: 4
来 自:宁夏银川
等 级:业余侠客
威 望:5
帖 子:103
专家分:221
注 册:2015-5-31
收藏(1)
得分:0 
回复 8楼 IHORSE
这个可以不用代码,只须借助于EXCEL。选中“原始座次表”的所有数据,复制后粘贴到EXCEL工作表中,再选中EXCEL工作表的数据区,找一片空白区或一个新工作表“选择性粘贴”,选中“选项卡中”的“转置”,就可以完成行列互换,再稍加修理即可。
2016-01-28 16:15
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
收藏
得分:0 
回复 3楼 liuxingang28
水平有限,不会用代码将其转换为DBF。
2016-01-29 09:40
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
收藏
得分:0 
回复 10楼 cxzbzgz
我这仅仅是举个例子,有时候座次表的列数不一定是10列,也有可能是8,9,10,11,12列,如果生成了原始的座次表后,都希望通过转换变成目标座次表的样子。不知道怎么办简单点。
2016-01-29 09:42
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
收藏
得分:0 
回复 11楼 沙枣
转置确实可以左下角跟右上角对换,但是左上角的要到右下角去,右下角的咬到左上角去,好像实现不了。
2016-01-29 09:45
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
转置是任何语言算法的基本功,至少可以有三种不同的算法,左下角-右上角、或者右下角-左上角的转置,不是很难的。
晚上试试看。

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-01-29 11:50
IHORSE
Rank: 1
等 级:新手上路
帖 子:41
专家分:5
注 册:2007-2-11
收藏
得分:0 
回复 3楼 liuxingang28
很好的代码

[此贴子已经被作者于2016-1-29 14:07编辑过]

2016-01-29 14:01
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
* 矩阵转置示例

* 原始矩阵 : 3x4
===========
 1  2  3  4
 5  6  7  8
 9 10 11 12
===========

* 矩阵转置 : 左上角-右下角翻转
===========
 1  5  9
 2  6 10
 3  7 11
 4  8 12
===========

* 矩阵逆转置 : 右上角-左下角翻转
===========
12  8  4
11  7  3
10  6  2
 9  5  1
===========

Clear

Local gaArray[ 5, 6 ]
? "原始数组 = 5x6 矩阵 : "
=Matrix_Fill(@gaArray)
=Matrix_Show(@gaArray)

Local R1[ 1 ]  && 任意大于 0 的数
? "转置数组 = 6x5 矩阵 : "
=Matrix_Transpose(@gaArray, @R1)
=Matrix_Show(@R1)

Local R2[ 1 ]  && 任意大于 0 的数
? "逆转置数组 = 6x5 矩阵 : "
=Matrix_TransposeA(@gaArray, @R2)
=Matrix_Show(@R2)


Function Matrix_Fill(A1)
    * 数组赋值(自然数) - Fill array with element numbers
    Local nRow, nCol

    For nRow = 1 To Alen( A1, 1 )
        For nCol = 1 To Alen( A1, 2 )
            A1[ nRow, nCol ] = (nRow-1) * Alen( A1, 2 ) + nCol
        Endfor
    Endfor
    Return
Endfunc


Function Matrix_Show(A1)
    * 数组显示 - Display array data
    Local nRow, nCol

    For nRow = 1 To Alen( A1, 1 )
        ?
        For nCol = 1 To Alen( A1, 2 )
            ?? A1[ nRow, nCol ], " "
        Endfor
    Endfor
    ?
    Return
Endfunc


Function Matrix_Transpose(A1, R1)
    * 矩阵转置/对称矩阵 : 右上角-左下角翻转
    * 定义:如果A(I, J)=A(J, I),则 A 是对称矩阵.
    Local nRow, nCol

    Dimension R1[Alen(A1, 2), Alen(A1, 1)]
    For nRow = 1 To Alen( A1, 1 )
        For nCol = 1 To Alen( A1, 2 )
            R1[nCol, nRow] = A1[nRow, nCol]
        Endfor
    Endfor
    Return
Endfunc


Function Matrix_TransposeA(A1, R1)
    * 矩阵逆转置 : 左上角-右下角翻转
    * 定义:如果A(I, J)=A(J, I),则 A 是对称矩阵.
    Local nRow, nCol, nRowX, nColY

    Dimension R1[Alen(A1, 2), Alen(A1, 1)]
    nRowX = Alen(A1, 1)
    For nRow = 1 To Alen( A1, 1 )
        nColY = Alen(A1, 2)
        For nCol = 1 To Alen( A1, 2 )
            R1[nCol, nRow] = A1[nRowX, nColY]
            nColY = nColY - 1
        Endfor
        nRowX = nRowX - 1
    Endfor
    Return
Endfunc

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-02-01 10:19
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
矩阵变换是初等数学的范畴,矩阵的置换是最简单的算法,还有矩阵的加减乘除,矩阵余因子、矩阵行列式、共轭矩阵、方程组、逆矩阵、矩阵元素累计积、矩阵各行的累加值、矩阵合并......等等。

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-02-01 11:30
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 

*!*    矩阵旋转:90度/180度的算法示例:
Clear

Local gaArray[ 4, 5 ]
? "原始数组 = 4x5 矩阵 : "
=Matrix_Fill(@gaArray)
=Matrix_Show(@gaArray)

Local R1[ 1 ]  && 任意大于 0 的数
? "数组正时针旋转90度 = 5x4 矩阵 : "
=Matrix_Rotation(@gaArray, @R1)
=Matrix_Show(@R1)

Local R2[ 1 ]  && 任意大于 0 的数
? "数组正时针旋转180度 = 4x5 矩阵 : "
=Matrix_Rotation(@R1, @R2)
=Matrix_Show(@R2)


Function Matrix_Fill(A1)
    * 数组赋值(自然数) - Fill array with element numbers
    Local nRow, nCol

    For nRow = 1 To Alen( A1, 1 )
        For nCol = 1 To Alen( A1, 2 )
            A1[ nRow, nCol ] = (nRow-1) * Alen( A1, 2 ) + nCol
        Endfor
    Endfor
    Return
Endfunc


Function Matrix_Show(A1)
    * 数组显示 - Display array data
    Local nRow, nCol

    For nRow = 1 To Alen( A1, 1 )
        ?
        For nCol = 1 To Alen( A1, 2 )
            ?? A1[ nRow, nCol ], " "
        Endfor
    Endfor
    ?
    Return
Endfunc


Function Matrix_Rotation(A1, R1)
    * 数组正时针旋转90度
    * 算法:
    * 第一步:A(I, J) = A(J, I)
    Local nRow, nCol, nColY

    Local R0[ 1 ]  && 任意大于 0 的数
    Dimension R0[Alen(A1, 2), Alen(A1, 1)]
    For nRow = 1 To Alen( A1, 1 )
        For nCol = 1 To Alen( A1, 2 )
            R0[nCol, nRow] = A1[nRow, nCol]
        Endfor
    Endfor

    * 第二步:A(I, J) = A(I, nColY - J)
    Dimension R1[Alen(R0, 1), Alen(R0, 2)]
    nColY = Alen(R0, 2)
    For nRow = 1 To Alen( R0, 2 )
        For nCol = 1 To Alen( R0, 1 )
            R1[nCol, nRow] = R0[nCol, nColY - nRow + 1]
        Endfor
    Endfor
    Return
Endfunc

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-02-04 17:07
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
除夕继续做题。

如何旋转:45度/-45度/顺时针(逆时针)一单元

比如:
0 度
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1

-45 度
0 0 0 0 0 0
1 0 0 0 0 0
1 1 0 0 0 0
1 1 1 1 0 0
1 1 1 1 1 0
1 1 1 1 1 1

45 度
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 1 1
0 0 1 1 1 1
0 1 1 1 1 1
1 1 1 1 1 1

===========================================
顺时针旋转一单元(正交矩阵)
For 3*3 矩阵
Input
1    2    3
4    5    6
7    8    9

Output:
4    1    2
7    5    3
8    9    6

For 4*4 矩阵
Input:
1    2    3    4   
5    6    7    8
9    10   11   12
13   14   15   16

Output:
5    1    2    3
9    10   6    4
13   11   7    8
14   15   16   12

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-02-07 14:57
快速回复:★如何将座次表旋转180度?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035610 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved