zoukankan      html  css  js  c++  java
  • Matlab中reshape函数的使用

    reshape把指定的矩阵改变形状,但是元素个数不变,

    例如,行向量:

    a = [1 2 3 4 5 6]

    执行下面语句把它变成32列:

    b = reshape(a,3,2)

    执行结果:

    b =

    1 4

    2 5

    3 6

    a=[1 2 3

    4 5 6

    7 8 9]

    可以从b中看到reshape是按列来读取的,如

    a=[1  2 ; 3  4]

    如果使用b=reshape(a,1,4)

    则得到的结果是

    b=[1 3 2 4]

    如果想得到

    b=[1 2 3 4]

    需要使用

    b=reshape(a',1,4)

    因为reshape使用的列优先!

    b转化回去是同样的道理。

     

    使用reshpe后想得到b=[1 2 3 4 5 6 7 8 9]

    只需要将a转置一下就可以了:

    b=reshape(a',1,9)

    ----------------------------------------------

    matlab中的解释如下:

    RESHAPE Change size.

        RESHAPE(X,M,N) returns the M-by-N matrix whose elements

        are taken columnwise from X. An error results if X does

        not have M*N elements.

     

        RESHAPE(X,M,N,P,...) returns an N-D array with the same

        elements as X but reshaped to have the size M-by-N-by-P-by-...

        M*N*P*... must be the same as PROD(SIZE(X)).

     

        RESHAPE(X,[M N P ...]) is the same thing.

     

        RESHAPE(X,...,[],...) calculates the length of the dimension

        represented by [], such that the product of the dimensions

        equals PROD(SIZE(X)). PROD(SIZE(X)) must be evenly divisible

        by the product of the known dimensions. You can use only one

        occurrence of [].

     

        In general, RESHAPE(X,SIZ) returns an N-D array with the same

        elements as X but reshaped to the size SIZ. PROD(SIZ) must be

        the same as PROD(SIZE(X)).

     

    源文档 <http://blog.sina.com.cn/s/blog_5feb3cea0100lz8b.html>

  • 相关阅读:
    Python学习 Day 068
    Python模块(一)(常用模块)
    python面向对象(C3算法)(六)
    Python面向对象(约束,异常处理,md5加密)(五)
    python面向对象(反射)(四)
    Python面向对象(类之间的关系)(三)
    Python面向对象(成员)(二)
    python面向对象(一)
    Python函数的装饰器
    递归与二分法
  • 原文地址:https://www.cnblogs.com/AI-Algorithms/p/3674197.html
Copyright © 2011-2022 走看看