精华内容
下载资源
问答
  • 处理的目的如下图,总结成一句话就是对一个非方阵的不规则矩阵进行反对角线相加的处理,从而得到一个一维数组的数据。联想到matlab可以直接导入excel得到矩阵的优势,我决定用matlab来解决这个问题(当然python之类...

    问题描述

    昨晚被我姐安排了一个小活,她需要对实验数据进行处理,但是苦于没有相关技能,就向我们求助了。处理的目的如下图,总结成一句话就是对一个非方阵的不规则矩阵进行反对角线相加的处理,从而得到一个一维数组的数据。联想到matlab可以直接导入excel得到矩阵的优势,我决定用matlab来解决这个问题(当然python之类的或许会有更简单的办法)
    在这里插入图片描述

    解决方案

    话不多说,先上代码

    // An highlighted block
    %修改i_max和j_max,分别为矩阵的行列数
    i_max=24;
    j_max=28;
    i=1;
    j=1;
    m=2;
    k=1;
    X=i_max+j_max;
    a=zeros(X-1,1);
    
    while m<=X
       for i=1:1:m
        j=m-i;
            if i<=i_max && j<=j_max && j~=0
                a(k)=a(k)+C(i,j);
            else
            end
       end
                 m=m+1; 
                 k=k+1;
                 i=1;
        
    end
    

    这个问题解决思路很简单,将excel表格导入工作区后,即可以得到一个矩阵C,接下来的问题就是找出每个斜对角线的元素将他们相加即可。
    在这里我的解决方案如下:
    可以看出每条反对角线元素的行列标号和是相同的,且依次递增,再对标号进行判定,去掉不在矩阵中的数值,将这些值相加存入数组中就完成了。

    展开全文
  • 从右上角到左下角沿反对角线打印方阵中的元素

    问题描述:从右上角到左下角沿反对角线打印方阵中的元素。假设矩阵为:

                        1,2,3,4

                        5,6,7,8

                        9,10,11,12

                       13,14,15,16

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

    分析:这个没有什么算法问题,就是纯粹的代码技巧问题,通过画图可以找出规律,只要确定每条反对角线的两端的坐标,就可以打印出对角线上的元素。因此可以将其分成两部分打印,定义两个变量row和column来保存矩阵的行数和列数,定义两个变量x和y来作为临时坐标变量。可确定出两部分的范围为打印(0,x)-(y,column-1)对角线上的元素,打印(x,0)-(row-1,y)对角线上的元素,具体代码如下:

    import java.util.*;
    public class Main1 {
    	public static void orderprint(int a[][]){    
            if(a==null){    
                System.out.println("数组不存在");    
                return ;    
            }    
            int row=a.length,column=a[0].length;    
            if(row==0 || column==0){    
                System.out.println("数组为空数组");    
                return ;    
            }
            int y=0,x=column-1;
            while(x>=0 && y<=row-1){        //打印(0,x)-(y,column-1)对角线上的元素
            	for(int j=x,i=0;j<=column-1 && i<=y;i++,j++)
            		System.out.print(a[i][j]+",");
            	    x--;y++;
            }
            x=1;y=column-2;
            while(y>=0 && x<=row-1){        //打印(x,0)-(row-1,y)对角线上的元素
            	for(int i=x,j=0;i<=row-1 && j<=y;i++,j++)
            		System.out.print(a[i][j]+",");
            	    x++;y--;
            }
            
        }    
        public static void main(String[] args) {    
            // TODO 自动生成的方法存根    
          int a[][]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};    
          orderprint(a);    
        }    
       
    }

    样例输出结果为:4,3,8,2,7,12,1,6,11,16,5,10,15,9,14,13,


    展开全文
  • 将N x N矩阵主对角线元素中的值与反对角线对应位置上元素中的值进行交换要求如下C源码如下思路说明 要求如下 将两个数组主对角线与反对角线上的元素交换,如下所示。 // 1 2 3 4 --> 4 3 2 1 // 4 5 6 7 --&...

    将N x N矩阵主对角线元素中的值与反对角线对应位置上元素中的值进行交换

    要求如下

    将两个数组主对角线与反对角线上的元素交换,如下所示。
    // 1 2 3 4 --> 4 3 2 1
    // 4 5 6 7 --> 4 6 5 7
    // 7 8 9 1 --> 7 9 8 1
    // 1 2 3 4 --> 4 2 3 1

    最近巩固一下基础,帮一些刚入门的小白解答问题,嗯…我也只是一只菜鸟哈,大神勿怪。
    上传一下,以供查询、学习 、共享。

    C源码如下

    #include <stdio.h>
    
    #define N 4
    
    int _tmain(int argc, _TCHAR* argv[])
    {	
    	int i, j;
    	int t[N][N] = {21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10};
    	printf("\nThe original array: \n");
    	for (i = 0; i < N; i++)
    	{
    		for (j = 0; j < N; j++)
    		{			
    			printf("%d  ", t[i][j]);			
    		}
    		printf("\n");
    	}
    
    	printf("\nThe array after exchange: \n");
    
    	int Temp1 = 0;
    	for (i = 0; i < N; i++)
    	{
    		for (j = 0; j < N; j++)
    		{		
    			if(i == j)
    			{
    				Temp1 = t[i][j];
    				t[i][j]	= t[i][N-i-1];
    				t[i][N-i-1] = Temp1;
    				continue;
    			}
    		}
    	}
    
    	for (i = 0; i < N; i++)
    	{
    		for (j = 0; j < N; j++)
    		{			
    			printf("%d  ", t[i][j]);			
    		}
    		printf("\n");
    	}
    	printf("\n");
    	return 0;
    }
    

    思路说明

    时间不多,长话短说。
    因为数组给定了(也可从输入获取),主要是处理主对角线和反对角线上元素坐标索引的问题,可以发现主对角线上的元素坐标,以4X4为例:[0][0]、[1][1] 、[2][2] 、[3][3];而反对角线上的元素坐标索引分别为:
    [0][3] 、[1][2] 、[2][1] 、[3][0]。
    在内层循环中,当i == j时,则说明是主对角线上的元素,此时需要与该行反对角线上的元素进行交换,可以发现该元素的坐标索引为[i][N-i-1],则交换两者即可,欧啦。

    展开全文
  • 仔细观察不难发现遍历的时候越界一般会返回第一行或者最后一列之后再按反对角线遍历 那么我可以建立2个数组,一个只放原数组第一行和最后一列的元素,第二个数组放原数组剩下的元素 比如题目描述 A=[1,2,3,4,8,12...

    题目简述:
    假如有一个3行4列的数字
    1,2,3,4
    5,6,7,8
    9,10,11,12
    要按1,2,5,3,6,9,4,7,10,8,11,12的顺序输出

    输入样例样例:
    2
    4
    1,2,3,4,5,6,7,8
    输出样例:
    1 2 5 3 6 4 7 8

    思路:
    一开始我想到是弄成2维数组,m,n记录遍历位置,越界后返回合法位置继续遍历,后来我想到了一种巧妙思路
    仔细观察不难发现遍历的时候越界一般会返回第一行或者最后一列之后再按反对角线遍历
    那么我可以建立2个数组,一个只放原数组第一行和最后一列的元素,第二个数组放原数组剩下的元素
    比如题目描述
    A=[1,2,3,4,8,12]
    B=[5,6,7,9,10,11]
    遍历A中的元素,当A中元素+(5-2)在B中存在就输出

     for i in A:
                print(i, end=' ')
                while B.count(i + T) != 0:
                    print(i + T, end='')
                    i += T
    

    源代码:

    class ArrayItem():
        def Method(self):
            A = []
            B = []
            m = input('row:')
            n = input('col:')
            m = int(m)
            n = int(n)
            a = []
            a.extend(input("Please input a array ,item split with ',': ").split(','))
            b = []
            for i in a:
                b.append(int(i))
            if len(b)!=m*n:
                print('Error!!!')
            else:
                for i in range(0, n):
                    A.append(b[i])
                k = b[n - 1] + n
                while b.count(k) != 0:
                    A.append(k)
                    k += n
                for i in b:
                    if A.count(i) == 0:
                        B.append(i)
                T = b[n] - b[1]
                for i in A:
                    print(i, end=' ')
                    while B.count(i + T) != 0:
                        print(i + T, end='')
                        i += T
    
    def main():
        array=ArrayItem()
        array.Method()
    
    if __name__ == '__main__':
        main()
    

    效果图:
    在这里插入图片描述
    后记:
    任何题目要多想想办法,解法不是唯一的,简洁是永恒的追求。

    展开全文
  • 前几天突然有了一个想法,就是numpy包中有很多函数可以用来生成对角矩阵,然而有没有办法能够生成反对角矩阵呢?虽然我们知道生成反对角矩阵在数学上是没有意义的,例如:反对角全为1的矩阵实际上只与主对角线上全为...
  • 【面试题】将矩阵反对角线输出

    千次阅读 2018-08-24 20:12:31
    矩阵: [[1,2,3,4,5],  [6,7,8,9,10], [11,12,13,14,15]]; 输出:5 4 10 3 9 15 2 8 14 1 7 13 6 12 11  1.先打印对角线右上角,包括对角线 2.再打印对角线左下角。 public class PrintMatrix { ... ...
  • 假设我们有grid = [%w| . . . . . . |,%w| . . . w w . |,%w| . . . w b . |,%w| b . w . b . |,%w| w w . w b b |,%w| b w b b w b |]#=&... [[".", ".", ".", ".", ".", "."],# [".", ".", ".", "w", "w", "."],# ...
  • 转置卷积一.卷积与转置卷积卷积(convolution):卷积核为 3x3;no padding , strides=1"转置卷积"(the transpose of conv) 可以理解为upsample conv.卷积核为:3x3; no padding , strides=1那看下strides=2的时候。...
  • #include <stdio.h> void main() { int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; int i; int s=0; for (i=0;i<=3;i++) s=s+a[i][3-i]; printf("%d",s); }
  • 因为有了光,才有了色彩,有了明暗,让物体有了质感,让世界万物变得丰富多彩。 光源的历史也是人类文明的历史。光在绘画中,不仅仅是照亮了物体,还负责传递物体的信息。物体的质感 色彩 空间 都必须通过光影来表现...
  • BERT后时代,XLNet 在20个任务上超越BERT,引起不小的关注。最重要的改进是 XLNet 实现了不在输入中加[Mask] 标志,同样可以利用上下文信息,解决了BERT预训练和微调不一致的问题。1、XLNet如何实现在不加 [Mask] ...
  • oj-14-矩阵对角线和反对角线的和

    千次阅读 2016-12-12 21:04:58
    #include #include int main() { int matrix[3][3],i,j,sum1,sum2; for(i=0;i;i++) { for(j=0;j;j++) { scanf("%d",&matrix[i][j]); } } sum1=matr
  • 在平面几何学习中,除了一些常用的公理、定理外,对于准备数学竞赛的选手还需要掌握一些特殊的定理。其中托勒密定理就是在数学竞赛中经常会引用的一个著名定理。托勒密定理最早由古希腊数学家依巴谷(也称“喜帕恰斯...
  • printf("主对角线的和是:%d\n反对角线的和是:%d\n主对角线之和和反对角之和的总和是:%d\n",sum1,sum2,sum); return 0; } 在VS2019下,需将源文件的scanf改为scanf_s: #include int main() { int i, j, n, sum1 = ...
  • //检查反对角线 for ( i = 0 ; i < size ; i ++ ) { if ( board [ i ] [ size - i - 1 ] == 1 ) { num0fx ++ ; } else num0f0 ++ ; } if ( num0fx == size ) { result = 0 ; } else ...
  • //在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。 char [][]y=new char [10][10]; for(int i=0;i<10;i++) { ...
  • 青山不移,流云来去,过往云烟,如如不动。不若埋首烟波,一飨浮生。人情事端,自是不适,何妨挂帆高咏,任由叶落纷纷。人生如此,浮生如斯。...除此之外,探索平行四边形是否为菱形亦是常见考法。...
  • 对角线是羽毛球场上最长的一条跑动线路,但凡是有点经验的球友都知道利用它充分地调动对手,赢球不费吹灰之力。可是理想和现实往往都有差距,你以为自己的对角线回球是这样的↓结果是这样的↓对角线这样的线路,运用...
  • 斑马视觉分享-​作为陈列师,我们离不开从基本的视觉陈列元素开启对于视觉陈列的理解,因此从本期开始,我们将为大家解析视觉元素在视觉陈列设计VMD中的存在!在几何学上,线--是一个看不见的实体,它是点在移动中...
  • 规范中规定,低压系统风管10米接缝不大于2个漏光点且平均每100米接缝不大于16个漏光点为合格。通过检查大楼已施工完成的11-14层风管接缝,发现漏光点超标,存在100米接缝大于 16个漏光点。控制好接缝漏光点是保证...
  • 对于业余球友来说,单打更多地要求运动员具备强悍的身体能力,利用自己不知疲倦的跑动来寻找对手的破绽,可是如果单纯依靠自己跑不死的体能,真的是听起来都觉得累……对于单打的爱好者来说,除了充足的体能储备,更...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 200
精华内容 80
关键字:

反对角线