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
各种三维变换算法,包括:几何变换:平移、旋转、变比、对称、错切。投影变换:平行投影(三视图、正轴测图、斜轴测图)、透视图。
对于变换的原理,只需要将原图形的点通过极坐标或者相加、相乘,再结合二维矩阵的原理即可实现,如果图形需要对图形对象进行旋转和放缩两类变换进行多次操作,则可以首先将两变换矩阵合成一个复合变换矩阵。...
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, ...
分量分别进行二维离散余弦变换,提取每个块的直流系数组成一个矩阵,在矩阵 中每个元素的十位数上嵌入2位二值水印图像数据 (128x128),当经过加密后的 水印数据为00(01,10,11)时,嵌入时只需将相应的十位数修改成...
第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#中基本的...
7.8找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。 38 7.9有15个数按从小到大的顺序存放在一个数组中。输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。...
保局投影算法(LPP)在人脸识别中具有较好的识别性能,但它是一种非监督学习,并且在具体实现时需要把图像转换为向量,破坏了图像的像素结构,这显然不利于模式识别。针对这些问题,提出基于酉子空间的二维判别保局...
设二维数组maze[m][n]为0 表示此路可通,为1表示此路不通.入口是maze[1][1]出口为maze[m][n]且maze[1][1]=0, maze[m][n]=0. 编写寻找从入口到出口的一条最短路径的程序 搜索法: 必须沿8个方向搜索. 二、算法的主要...
最后将专家给出的二维语言决策矩阵转换为信度决策矩阵,用证据推理算子集结为综合信度决策矩阵,并利用VIKOR方法对其求解,获取方案排序。算例研究结果及对比分析表明,所提出方法能减少决策信息的丢失,具有有效性...
在获得模型之后,把迭代学习控制作用下的闭环系统转换成二维模型。接着,提出了基于模型预测控制的基准,并给出了详细的推导证明。根据这些算法,得到最优控制律,并拟合出性能评估曲面,从而性能差距可以更直观地反映在三...
6.3.3任意二维平面多边形面积量算 6.3.4任意三维平面多边形面积量算 思考题 第7章空间数据索引算法 7.1B树与B+树 7.1.1B树索引结构 7.1.2B+树索引结构 7.2R树结构 7.2.1R树定义 7.2.2R树索引的主要...
但与索引图像不同的是,RGB图像每一个像素的颜色值(由RGB三原色表示)直接存放在图像矩阵中,由于每一像素的颜色需由R、G、B三个分量来表示,M、N分别表示图像的行列数,三个M x N的二维矩阵分别表示各个像素的R、G...
有一道算法题题目的意思是在二维数组里找到一个峰值。要求复杂度为n。 解题思路是找田字(四边和中间横竖两行)中最大值,用分治法递归下一个象限的田字。 在用python定义一个二维数组时可以有list和numpy.array两种...
将高维特征变换转化为遗传优化问题,利用特征变换降维后的二维数据进行k-均值聚类,并根据(高维坐标,降维后二维坐标)值进行RBF神经网络训练,当新对象输入时,利用训练好的神经网络对其进行二维映射,通过判断该对象与各...
采用二维矩阵的编码方式表示车辆与物料组合优先权值。为使矩阵初值差异化,设计了将(0,1)间随机数转化成[(0, ∞)]实数值初值的转换函数。在解码过程中,为保证生产的连续性,采用分阶段解码的方式。为实现车辆的...
针对多向主元分析(multi-way principal component analysis,MPCA)算法用于间歇过程实施监控时需要将三维数据转换为高阶的二维矩阵,从而易导致算法的计算量大,且会丢失一些有用信息的情况进行了研究,提出了一种...
<br>实验四 综合(课程设计) 内容及步骤: 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射线法...