矩阵上下左右翻转

一:上下翻转

上下翻转的遍历顺序是从最下面一行开始从左到右遍历,如图:

#include<iostream>
#include<stdio.h>
using namespace std;
/**
  上下翻转,
*/
int main(){
  int M=4,N=3;
  int temp=0;
  int matrix[4][3] = {1,2,3,
                      4,5,6,
                      7,8,9,
                      10,11,12};
   printf("上下翻转之前\n");
for(int p1=0;p1<M;p1++)
    {
        for(int j=0;j<N;j++)
            printf("%d ",matrix[p1][j]);
        printf("\n");
    }

 for(int p=0;p<M/2;p++){
            for(int q=0;q<N;q++){
                temp=matrix[p][q];
                matrix[p][q]=matrix[M-p-1][q];
                matrix[M-p-1][q]=temp;
            }
        }
    printf("\n");
    printf("============华丽的分割线=============\n\n");
    printf("上下翻转之后\n");
for(int p1=0;p1<M;p1++)
    {
        for(int j=0;j<N;j++)
            printf("%d ",matrix[p1][j]);
        printf("\n");
    }

  return 0;
}

=============================我是一根傲娇的分割线===========================

二:左右翻转

原理差不多

#include<iostream>
#include<stdio.h>
using namespace std;
/**
  左右翻转,
*/
int main(){
  int M=4,N=3;
  int temp=0;
  int matrix[4][3] = {1,2,3,
                      4,5,6,
                      7,8,9,
                      10,11,12};
   printf("左右翻转之前\n");
for(int p1=0;p1<M;p1++)
    {
        for(int j=0;j<N;j++)
            printf("%d ",matrix[p1][j]);
        printf("\n");
    }

 for(int p=0;p<M;p++)
        {
            for(int q=0;q<N/2;q++)
            {
                temp=matrix[p][q];
                matrix[p][q]=matrix[p][N-q-1];
                matrix[p][N-q-1]=temp;
            }
        }
    printf("\n");
    printf("============华丽的分割线=============\n\n");
    printf("左右翻转之后\n");
for(int p1=0;p1<M;p1++)
    {
        for(int j=0;j<N;j++)
            printf("%d ",matrix[p1][j]);
        printf("\n");
    }

  return 0;
}
时间: 2024-12-19 10:01:27

矩阵上下左右翻转的相关文章

python numpy 矩阵左右翻转/上下翻转

numpy API: flattened flip() (in module numpy) fliplr() (in module numpy) flipud() (in module numpy) flip: flip(m, 0) is equivalent to flipud(m). flip(m, 1) is equivalent to fliplr(m). flip(m, n) corresponds to m[...,::-1,...] with ::-1 at position n.

Matlab矩阵基本操作(定义,运算)

转自:http://blog.csdn.net/perfumekristy/article/details/8119861 一.矩阵的表示在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在”[ ]”内: b.矩阵的同行元素之间用空格(或”,”)隔开: c.矩阵的行与行之间用”;”(或回车符)隔开: d.矩阵的元素可以是数值.变量.表达式或函数: e.矩阵的尺寸不必预先定义. 二,矩阵的创建: 1.直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则.建立向

矩阵操作

reshape(a, m, n) a是一个含有m*n个元素的数组 如reshape(1:9, 3, 3) findstr(str1, str2) 在str2中查找str1片段 如 b = [0111001000100110111]; a = length(findstr(01,  b) 矩阵的翻转 flipud() flip a matrix up to down.上下 a = reshape(1:9, 3 , 3) >>a=[ 1 2 3 4 5 6 7 8 9] >>flipu

Python 之 PythonVSMATLAB 矩阵操作

一.线形代数理论基础 线形代数(linear algebra)是数学的一个分支,研究矩阵理论.向量空间.线性变换和有限维线形方程组等内容. 比较重要的思想有:1.线性代数的核心内容是研究有限维线性空间的结构和线性空间的线性变换:2.向量的线性相关性是研究线性空间结构与线性变换理论的基础:3.矩阵是有限维线性空间的线性变换的表示形式:4.线性方程组的求解问题是n维空间到m维空间线性映射求核和全体原象的问题:5.行列式是研究这些问题的一个工具. 主要内容有:1.矩阵运算:加减乘除.转置.逆矩阵.行列

matlab矩阵的表示和简单操作

原地址:http://www.cnblogs.com/Ran_Ran/archive/2010/12/11/1903070.html 一.矩阵的表示在MATLAB中创建矩阵有以下规则:a.矩阵元素必须在"[ ]"内:b.矩阵的同行元素之间用空格(或",")隔开:c.矩阵的行与行之间用";"(或回车符)隔开:d.矩阵的元素可以是数值.变量.表达式或函数:e.矩阵的尺寸不必预先定义. 二,矩阵的创建:1.直接输入法最简单的建立矩阵的方法是从键盘直接输

OpenCV利用矩阵实现图像旋转

利用OpenCV的矩阵操作实现图像的逆时针旋转90度操作 代码 Mat src = imread("C:\\Users\\fenggl\\Desktop\\测试.jpg",MREAD_UNCHANGED); imshow("原图", src); transpose(src, src); flip(src, src, 0); imshow("逆时针旋转90度", src); 效果 解释说明 第一步:读入原图 Mat src = imread(&qu

Machine Learning——octave矩阵操作(2)——DAY3

矩阵的数学操作: Assumed: a为一个矩阵,m是一个向量 Log(a)--求每一个元素的对数 Exp(a)--以e为底的指数 1./a--求每个元素的导师 [a,b]=max(m)--m是一个向量,a为m当中最大的元素,b为a在m中的排列序号(已按从小到大排好) m<3--比如m=[1 6 7],会得到[1 0 0](应该能懂) Find(m>3)--比如m=[1 6 7],会得到[2 3],即大于3的元素的下标(应该能懂) Magic(3)--产生一个3*3的矩阵,每行每列加起来相等

numpy线性代数基础 - Python和MATLAB矩阵处理的不同

http://blog.csdn.net/pipisorry/article/details/39087583 在介绍工具之前先对理论基础进行必要的回顾是很必要的.没有理论的基础,讲再多的应用都是空中楼阁.本文主要设涉及线性代数和矩阵论的基本内容.先回顾这部分理论基础,然后给出MATLAB,继而给出Python的处理.个人感觉,因为Python是面向对象的,操纵起来会更接近人的正常思维:而MATLAB大多是以函数实现的,是向对象施加的一个操作.比如,A是一个矩阵,它有一个属性attr.用Pyth

转载 matlab矩阵数组常用操作

一. length             返回矩阵最长维的的长度    ndims       返回维数          numel      返回矩阵元素个数size               返回每一维的长度,[rows,cols]=size(A) 矩阵块操作 1.repmat() 数组块状复制 2.blkdiag()对角块生成函数 3.kron()直积 二.矩阵元素的提取与替换 (1)提取 A(i, j) :矩阵 A 中,位于第 i 横列.第 j 直行的元素用冒号(:), 取出一整列