`
从此醉
  • 浏览: 1044617 次
  • 性别: Icon_minigender_1
  • 来自: US
社区版块
存档分类
最新评论

找到一个二维矩阵中所有包含0的,并且把0元素所在行与列全部转换成0的算法!

阅读更多

import java.util.ArrayList;

import java.util.List;

public class MatrixDemo {

// 找出二维矩阵中为0元素的所有集合

public static List<Posiztion> findZero(int a[][]) {

List<Posiztion> list = new ArrayList<Posiztion>();

int row = a.length;

int col = a[0].length;

for (int i = 0; i < row; i++) {

for (int j = 0; j < col; j++) {

if (a[i][j] == 0) {

Posiztion p = new Posiztion();

p.setX(i);

p.setY(j);

list.add(p);

}

}

}

return list;

}

// 将矩阵中的为0的元素的行与列全部替换为0

public static int[][] replaceZero(int a[][]) {

int b[][] = a;

List<Posiztion> l = findZero(a);

for (int i = 0; i < l.size(); i++) {

Posiztion p = l.get(i);

int x = p.getX();

int y = p.getY();

for (int j = 0; j < a.length; j++) {

b[j][y] = 0;

}

for (int k = 0; k < a[0].length; k++) {

b[x][k] = 0;

}

}

return b;

}

// 打印二维矩阵的函数

public static void printMatrix(int a[][]) {

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[0].length; j++) {

System.out.print(a[i][j] + " ");

}

System.out.println();

}

}

public static void main(String[] args) {

int a[][] = { { 1, 2, 3, 4, 5 }, { 1, 2, 3, 4, 0 }, { 0, 1, 2, 3, 4 } ,{1,2,3,4,5}};

List<Posiztion> l = findZero(a);

System.out.println("The position of zero are:");

for (int i = 0; i < l.size(); i++) {

System.out.println("(" + l.get(i).getX() + "," + l.get(i).getY()

+ ")");

}

System.out.println("Before replace the Matrix is:");

printMatrix(a);

System.out.println("After replace the Matrix is:");

int b[][] = replaceZero(a);

printMatrix(b);

}

}

// 定义一个类,用来存放为0元素的位置,x代表在哪行,y代表在哪列

class Posiztion {

private int x;

private int y;

public int getX() {

return x;

}

public void setX(int x) {

this.x = x;

}

public int getY() {

return y;

}

public void setY(int y) {

this.y = y;

}

}

运行结果:

The position of zero are:

(1,4)

(2,0)

Before replace the Matrix is:

1 2 3 4 5

1 2 3 4 0

0 1 2 3 4

1 2 3 4 5

After replace the Matrix is:

0 2 3 4 0

0 0 0 0 0

0 0 0 0 0

0 2 3 4 0

分享到:
评论

相关推荐

    高光谱转为二维矩阵(处理完可用于遗传算法)

    代码功能:高光谱图像导入matlab预处理,转化为二维矩阵,进行处理,对于初学者应该很有用,可用于遗传算法进行波段选择。思路可看https://blog.csdn.net/obsession54666/article/details/103025780

    三维变换算法,三维坐标转换二维算法,C,C++

    各种三维变换算法,包括:几何变换:平移、旋转、变比、对称、错切。投影变换:平行投影(三视图、正轴测图、斜轴测图)、透视图。

    图形学实验三《二维图形几何变换算法》代码+报告

     对于变换的原理,只需要将原图形的点通过极坐标或者相加、相乘,再结合二维矩阵的原理即可实现,如果图形需要对图形对象进行旋转和放缩两类变换进行多次操作,则可以首先将两变换矩阵合成一个复合变换矩阵。...

    基于索引表的图像细化程序有详细注解

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, ...

    一种基于DCT算法的优化

    分量分别进行二维离散余弦变换,提取每个块的直流系数组成一个矩阵,在矩阵 中每个元素的十位数上嵌入2位二值水印图像数据 (128x128),当经过加密后的 水印数据为00(01,10,11)时,嵌入时只需将相应的十位数修改成...

    C#二维三维图形绘制工程实例宝典

    第4章 二维矩阵和变换 4.1 矩阵基础和变换 4.2 齐次坐标 4.2.1 齐次坐标中的缩放 4.2.2 齐次坐标中的平移 4.2.3 齐次坐标中的旋转 4.2.4 变换组合 4.2.5 C#中矩阵的定义 4.2.6 C#中的矩阵操作 4.2.7 C#中基本的...

    c程序设计习题参考(谭浩强三版)习题参考解答

    7.8找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。 38 7.9有15个数按从小到大的顺序存放在一个数组中。输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。...

    论文研究-面向酉子空间的二维判别保局投影的人脸识别.pdf

    保局投影算法(LPP)在人脸识别中具有较好的识别性能,但它是一种非监督学习,并且在具体实现时需要把图像转换为向量,破坏了图像的像素结构,这显然不利于模式识别。针对这些问题,提出基于酉子空间的二维判别保局...

    数据结构课程设计——迷宫问题

    设二维数组maze[m][n]为0 表示此路可通,为1表示此路不通.入口是maze[1][1]出口为maze[m][n]且maze[1][1]=0, maze[m][n]=0. 编写寻找从入口到出口的一条最短路径的程序 搜索法: 必须沿8个方向搜索. 二、算法的主要...

    论文研究-基于证据推理和VIKOR的二维语言多准则群决策方法.pdf

    最后将专家给出的二维语言决策矩阵转换为信度决策矩阵,用证据推理算子集结为综合信度决策矩阵,并利用VIKOR方法对其求解,获取方案排序。算例研究结果及对比分析表明,所提出方法能减少决策信息的丢失,具有有效性...

    基于二维模型预测控制的迭代学习控制性能评估方法

    在获得模型之后,把迭代学习控制作用下的闭环系统转换成二维模型。接着,提出了基于模型预测控制的基准,并给出了详细的推导证明。根据这些算法,得到最优控制律,并拟合出性能评估曲面,从而性能差距可以更直观地反映在三...

    地理信息系统算法基础.rar

    6.3.3任意二维平面多边形面积量算 6.3.4任意三维平面多边形面积量算 思考题 第7章空间数据索引算法 7.1B树与B+树 7.1.1B树索引结构 7.1.2B+树索引结构 7.2R树结构 7.2.1R树定义 7.2.2R树索引的主要...

    imageprocess

    但与索引图像不同的是,RGB图像每一个像素的颜色值(由RGB三原色表示)直接存放在图像矩阵中,由于每一像素的颜色需由R、G、B三个分量来表示,M、N分别表示图像的行列数,三个M x N的二维矩阵分别表示各个像素的R、G...

    python中字符串变二维数组的实例讲解

    有一道算法题题目的意思是在二维数组里找到一个峰值。要求复杂度为n。 解题思路是找田字(四边和中间横竖两行)中最大值,用分治法递归下一个象限的田字。 在用python定义一个二维数组时可以有list和numpy.array两种...

    基于相似性保持和特征变换的高维数据聚类改进算法

    将高维特征变换转化为遗传优化问题,利用特征变换降维后的二维数据进行k-均值聚类,并根据(高维坐标,降维后二维坐标)值进行RBF神经网络训练,当新对象输入时,利用训练好的神经网络对其进行二维映射,通过判断该对象与各...

    论文研究-面向连续生产的供应链联合调度及算法.pdf

    采用二维矩阵的编码方式表示车辆与物料组合优先权值。为使矩阵初值差异化,设计了将(0,1)间随机数转化成[(0, ∞)]实数值初值的转换函数。在解码过程中,为保证生产的连续性,采用分阶段解码的方式。为实现车辆的...

    论文研究-青霉素发酵过程的2DPCA建模及监测.pdf

    针对多向主元分析(multi-way principal component analysis,MPCA)算法用于间歇过程实施监控时需要将三维数据转换为高阶的二维矩阵,从而易导致算法的计算量大,且会丢失一些有用信息的情况进行了研究,提出了一种...

    数据结构(C++)有关练习题

    &lt;br&gt;实验四 综合(课程设计) 内容及步骤: 1、假定一维数组a[n]中的每个元素值均在[0,200]区间内,用C++编写一个算法,分别统计出落在[0,20],[21,50],[51,80],[81,130],[131,200]等各区间内的元素...

    图像增强的实现

    说明:对于形式 H=fspecial(type) ,fspecial 函数产生一个由 type 指定的二维滤波器 H ,返回的 H 常与其它滤波器搭配使用。 4. 彩色增强的 Matlab 实现 4.1 imfilter函数 功能:真彩色增强 格式:B=imfilter(A,h)...

    地理信息系统算法基础

    目录序前言第1章算法设计和分析1.1概述1.2算法设计原则1.3算法复杂性的...包含点2.7判断线段、折线、多边形是否在矩形中2.8判断矩形是否在矩形中2.9判断圆是否在矩形中2.10判断点是否在多边形内2.10.1射线法...

Global site tag (gtag.js) - Google Analytics