`
zhufeng1981
  • 浏览: 71807 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于矩阵变换的小问题

J# 
阅读更多

一个网友问了一个这样的问题,问题的内容如下:

在控制台输入一个整数4等到下面的矩阵,

0  1  2  3
1  1  2  3
2  2  2  3
3  3  3  3

 

 

 然后通过矩阵变换成如下状态:

0  0  0  0 
 0  1  1  1 
 0  1  2  2 
0  1  2  3
首先,第一个思路是想到的思路是利用矩阵变化公式,但是,头脑里想不起来半个公式。所以,这个思路放弃。
然后,通过观察这个矩阵的特点是个对称的(对称矩阵),变化后的矩阵也是对称的,通过根数组结合起来思考,我突然发现了一个规律,如下所示:
                            (1)
0123   ----  (i,j)---    (0,0)(0,1)(0,2)(0,3)
1123          映射       (1,0)(1,1)(1,2)(1,3)
2223                       (2,0)(2,1)(2,2)(2,3)
3333                       (3,0)(3,1)(3,2)(3,3)
                            (2)
0000   ----  (i,j)---    (0,0)(0,1)(0,2)(0,3)
0111          映射       (1,0)(1,1)(1,2)(1,3)
0122                       (2,0)(2,1)(2,2)(2,3)
0123                       (3,0)(3,1)(3,2)(3,3)
|------发现规律如下------|
从变化后的矩阵和一个二维数组存储访问下标对比,发现了矩阵(1)是正好是每个存储单元中的最大的下标,矩阵(2)是正好是每个存储单元中的最大的下标这时,解决方案豁然开朗。即,只要写个求最大值和最小值的方法
	public static int max(int x, int y) {
		return x > y ? x : y;
	}
 
	public static int min(int x, int y) {
		return x < y ? x : y;
	}
  我利用Java的简单实现代码如下:
package com.demo;

import java.util.InputMismatchException;
import java.util.Scanner;

/**
 * about a simple solution to change the matrix
 * 
 * @author Frank
 * @since 1.0
 */
public class Matrix {
	/**
	 * 
	 * @param x
	 *            integer value
	 * @param y
	 *            integer value
	 * @return the minimum value between x and y.
	 */
	public static int min(int x, int y) {
		return x < y ? x : y;
	}
	/**
	 * 
	 * @param x
	 *            integer value
	 * @param y
	 *            integer value
	 * @return the maximum value between x and y.
	 */
	public static int max(int x, int y) {
		return x > y ? x : y;
	}
	public static void main(String[] args) {
		Scanner read = new Scanner(System.in);
	
		int n = 4;//default value
		try {
			n = read.nextInt();
		} catch (InputMismatchException e) {
			
			e.printStackTrace();

		} finally {
			System.out.println("*********变换前的矩阵***********");
			int[][] oldMatrix = new int[n][n];
			for(int i = 0;i<n;i++){
				for(int j = 0;j<n;j++){
					oldMatrix[i][j] = max(i,j);
				}
			}
			
			for(int i = 0;i<n;i++){
				for(int j = 0;j<n;j++){
					System.out.print(oldMatrix[i][j]);
				}
				System.out.println();
				
			}
			
			System.out.println("*********变换后的矩阵***********");
			int[][] newMatrix = new int[n][n];
			for(int i = 0;i<n;i++){
				for(int j = 0;j<n;j++){
					newMatrix[i][j] = min(i,j);
				}
			}
			
			for(int i = 0;i<n;i++){
				for(int j = 0;j<n;j++){
					System.out.print(newMatrix[i][j]);
				}
				System.out.println();
				
			}
			
		}

	}

}
 
 
1
1
分享到:
评论
1 楼 maetrive 2012-12-03  
那如果是求矩阵的秩,或正定性呢?

相关推荐

    矩阵变换器自抗扰控制技术的改进研究

    针对采用空间矢量间接调制算法的矩阵变换器,提出一种改进的自抗扰控制策略,用来解决矩阵变换器输出侧性能易受输入侧扰动影响的问题。根据传统自抗扰控制器的基本原理,重新对控制器状态误差反馈模块的非线性函数进行...

    数值分析—矩阵特征值问题的数值计算

    矩阵特征值问题的数值解法 在实际应用中,求矩阵的特征值和特征向量通常分为变换法和迭代法两种。变换法是 从原矩阵从发,用有限个正交相似变换将其化为便于求出特征值的形式,如对角矩阵、三角形矩阵等。这类方法有...

    Python解决线性代数问题之矩阵的初等变换方法

    今天小编就为大家分享一篇Python解决线性代数问题之矩阵的初等变换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    一种基于小波稀疏确定性简单二值观测矩阵的嵌入式视觉压缩传感实现方法

    针对嵌入式视觉压缩传感实现的可行性与实时性,通过稀疏变换矢量化和伪随机序列观测矩阵构建相关研究,结合小波稀疏起主要作用系数数据位于矢量矩阵前侧,提出了一种基于小波稀疏的确定性简单二值观测矩阵的压缩传感...

    论文研究-一种非负矩阵分解的快速方法.pdf

    针对超高维数据进行非负矩阵分解的计算代价大,特征提取速度慢问题,提出一种非负矩阵分解的快速算法。该算法通过代数变换,把对原高维矩阵的非负分解转换成非负的低维矩阵的非负分解,其求解过程只需要对一个阶数...

    RB-IGBT驱动电路及其在矩阵式变换器中的应用 (2006年)

    换流技术是矩阵变换器技术中一个关键问题。传统基于电流方向的四步换流策略采用电流霍尔检测电流方向,在小电流情况下准确性低。该文检测器件集射极电压确定输出电流方向,并据此实现四步换流。实验证明,该方法电流...

    论文研究 - 广义自反矩阵的块分解与应用

    广义反射矩阵是一类特殊的矩阵,它们之间具有关系,并且是一些广义反射矩阵。 在许多科学和工程应用中... 数值例子说明了所开发的显式分解对于将系数矩阵属于此类的线性最小二乘问题解耦为较小且独立的子问题的有用性。

    矩阵论-第二章-JORDAN标准型

    这一章的讨论源于如何选择线性空间的基,使线性变换在该基下的矩阵具有尽可能简单的形式这一问题。

    基于局部基本变量的LP问题矩阵算法

    基于部分基变量提出了LP问题的矩阵算法。...算法的求逆问题,讨论并给出了求逆快速算法,该算法充分利用了矩阵算法分解过程中提供的原来的逆矩阵的信息经过简单的变换得到新的逆矩阵,该算法比直接求逆法计算效率更高。

    论文研究-基于循环核矩阵的自适应目标跟踪算法.pdf

    针对现在存在的基于分类的目标跟踪算法难以实现自适应目标大小变化的问题,提出并实现了基于循环核矩阵的自适应目标跟踪算法。算法首先在包含目标的感兴趣区域内采集所有的训练样本以构成一个循环矩阵结构,再使用...

    论文研究-作业成本计算中成本动因合并理论研究.pdf

    运用矩阵变换理论,研究ABC系统实施过程中为减少系统复杂性所进行的成本动因合并和最终成本动因个数的确定问题.结果表明,作业动因成本系数矩阵的秩是保证产品作业成本计算...

    Procrustes 问题:对矩阵应用正交变换。-matlab开发

    给定两个矩阵 A 和 B,该函数找到一个正交矩阵 Q,这样 B*Q 最接近 A,因为 Frobenius 范数最小。 这个问题被称为 Procrustes 问题。

    论文研究-一种对称散布矩阵空间的人脸识别方法.pdf

    为有效解决小样本问题 ,从线性子空间的角度出发 ,构造了一种矩阵变换 ,得到了类内散布矩阵的另一个对称线性子空间 ;通过对两个子空间的分别求解 ,从而得到样本有效的鉴别信息。该方法有效地解决了传统 Fisher鉴别...

    小波分析及其在数字图像处理中的应用 [朱希安,曹林 编著] 2012年版

    除此之外,本书采用实例说明小波变换在图像压缩中的应用、小波变换在数字水印中的应用、Gabor小波在人脸识别中的应用、小波树在人脸识别中的应用、Gabor 小波在纹理图像分割中的应用;同时包括基于混沌和幻方置乱的...

    minimathlibs:具有小型矩阵和3D几何类的最小c ++库

    每天用于解决问题的小型数学工具的集合。 两个主要功能: 3D几何:点和变换。 小型静态矩阵。 基于我在CERN期间开发的代码中使用的概念。 作者:Juan Palacios 许可证:2条款BSD许可证。 建造 Minimathlibs是...

    算法设计与分析王晓东

    3.1 矩阵连乘问题 3.2 动态规划算法的基本要素 3.3 最长公共子序列 3.4 凸多边形最优三角剖分 3.5 多边形游戏 3.6 图像压缩 3.7 电路布线 3.8 流水作业调度 3.9 0-1背包问题 3.10 最优二叉搜索树 小结 习题 第4章 ...

    不相关匹配追踪的分段区分性特征变换方法

    该方法将特征变换当成高维信号的稀疏逼近问题,采用状态绑定的方法训练得到基于域划分的线性变换矩阵( Region Dependent Linear Transform,RDLT) 和基于最小音素错误准则均值补偿的特征( mean-offset feature ...

    论文研究-基于MPSoC平台小波变换并行算法研究.pdf

    快速小波变换是数字信号处理面临的一个重要问题,针对并行小波算法展开研究,缩减小波变换中卷积运算的规模,提高小波变换过程中的并行效能,以实现小波变换的快速并行计算。通过FFT矩阵代入计算,消去了并行计算...

    计算机图形学 OpenGL实验源码+实验文档

    小实验2:建模观察(MODELVIEW)矩阵堆栈 17 小实验3:正平行投影1 19 小实验4:正平行投影2 19 小实验5:正平行投影3 20 小实验6:透射投影1 21 小实验6:透射投影2 22 小实验7:三维对象 24 实验四 光照模型和纹理...

    论文研究-基于Gabor变换和双方向PCA的人脸识别.pdf

    提出了一种可以解决小样本问题的人脸识别新算法。算法首先把人脸图像经过Gabor小波变换后得到的每个输出图像都看成是独立的样本,从而大大增加了每一类人脸样本的样本数。然后采用双方向PCA算法来提取人脸特征,并...

Global site tag (gtag.js) - Google Analytics