matlab中怎样将一维数组转化为二维矩阵

 我来答
生活知识小超人
高粉答主

2021-06-23 · 醉心答题,欢迎关注
知道答主
回答量:2078
采纳率:50%
帮助的人:78.7万
展开全部

1、首先需要知道matlab中将一维数组转化为二维矩阵的,使用的是reshape函数,可以在命令行窗口help reshape,看一下函数用法,如下图所示。

2、输入a=[1 2 3 4 5 6 7 8],创建一个一维数组a,如下图所示。

3、接着输入reshape(a,2,4),将一维数组转化为2行4列的二维矩阵,如下图所示。

4、回车键之后,可以看到a数组转化为二维矩阵了,如下图所示。

5、最后输入reshape(a,4,2),可以转化为4行2列的矩阵,需要注意的一维数组需要和转化的二维矩阵元素相等,如下图所示。

木生子识时务
推荐于2017-11-26 · 知道合伙人软件行家
木生子识时务
知道合伙人软件行家
采纳数:455 获赞数:1966
现在浙江大学学习,对电脑网络,软件应用有过全面系统的学习。

向TA提问 私信TA
展开全部

你可以使用reshape函数进行处理。

例子如下:

A = 1:10;
B = reshape(A,[5,2])

该命令具体的用法可以用下面命令来查看:

doc reshape

下面是Matlab里面关于这个命令的解释: 

B = reshape(A,sz) reshapes A using the size vector, sz, to define size(B). For example, reshape(A,[2,3]) reshapes A into a 2-by-3 matrix. sz must contain at least 2 elements, and prod(sz) must be the same as numel(A).


B = reshape(A,sz1,...,szN) reshapes A into a sz1-by-...-by-szN array where sz1,...,szN indicates the size of each dimension. You can specify a single dimension size of[] to have the dimension size automatically calculated, such that the number of elements in B matches the number of elements in A. For example, if A is a 10-by-10 matrix, thenreshape(A,2,2,[]) reshapes the 100 elements of A into a 2-by-2-by-25 array.


下面是关于上面那个例子的解释:

Reshape a 1-by-10 vector into a 5-by-2 matrix.

A = 1:10;
B = reshape(A,[5,2])
B =

    1     6
    2     7
    3     8
    4     9
    5    10

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
___Acrowded
2018-03-30 · TA获得超过1.5万个赞
知道小有建树答主
回答量:137
采纳率:100%
帮助的人:1.2万
展开全部
  • 可以用reshap(),也可以直接“捋直”了。

  • 为了清晰点,给你举个例子吧:

    a=[1,2;3,4;];

    b=a(:);

    c=reshape(a,[],1);

    得到的b,c都是一样的一维列向量。

reshape介绍:

reshape函数重新调整矩阵的行数、列数、维数。在matlab命令窗口中键入docreshape或helpreshape即可获得该函数的帮助信息。

用法:

B = reshape(A,m,n)

B = reshape(A,m,n,p,...)

B = reshape(A,[m n p ...])

B = reshape(A,...,[ ],...)

B = reshape(A,siz)

程序示例:

close all; clear; clc;

A = [1 2 3; 4 5 6; 7 8 9; 10 11 12] % 4 by 3

B = reshape(A, 2, 6) % 2 by 6

% C = reshape(A, 2, 4) % error

% D = reshape(A, 2, 10) % error

E = reshape(A, 2, 3, 2) % 2 by 3 by 2

注意:reshape函数对原数组的抽取是按照列抽取的(对原数组按列抽取,抽取的元素填充为新数组的列)

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式