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

发布网友 发布时间:2022-04-23 05:44

我来回答

4个回答

懂视网 时间:2022-04-12 16:44

(1)特殊向量 t=[0:0.1:10] %产生从0~10的行向量,元素之间的间隔为0.1 t=linspace(n1,n2,n) %产生n1和n2之间线性均匀分布的n个数(默认n时,产生100个数) t=lonspace(n1,n2,n) %默认n时,产生50个数 (2)特殊矩阵 eye(m) %生成m阶单位矩阵 eye(m,n) %m阶

(1)特殊向量

t=[0:0.1:10] %产生从0~10的行向量,元素之间的间隔为0.1
t=linspace(n1,n2,n) %产生n1和n2之间线性均匀分布的n个数(默认n时,产生100个数)
t=lonspace(n1,n2,n) %默认n时,产生50个数

(2)特殊矩阵

eye(m) %生成m阶单位矩阵
eye(m,n) %m阶单位矩阵的第n列
eye(size(a)) %与矩阵a同等阶数的单位阵

(3)所有元素为1的矩阵(也叫全1矩阵)

ones(n) %全1的n阶矩阵

ones(size(A)) %与A同阶的全1矩阵
ones(m,n) %m阶全1矩阵的第n列

(4)所有元素为0的矩阵(也叫全0矩阵)

zeros(n) %全0的n阶矩阵

zeros(size(A)) %与A同阶的全0矩阵

zeros(m,n) %m阶全0矩阵的第n列

(5)空矩阵

q=[] %空矩阵是一个特殊的矩阵,这在线性代数中是不存在的。不过,它可以用来删除矩阵的行与列。

B(2,:)=[] %删除矩阵B的第2行
B(:,3)=[] %删除矩阵B的第3列

(6)随机数矩阵

rand(m,n) %产生m×n矩阵,其中的元素是服从[0,1]上均匀分布的随机数;

normrnd(mu,sigma,m,n) %产生m×n矩阵,其中的元素是服从均值为mu、标准差为sigma的正态分布的随机数;

exprnd(mu,m,n) %产生m×n矩阵,其中的元素是服从均值为mu的指数分布的随机数;

poissrnd(mu,m,n) %产生m×n矩阵,其中的元素是服从均值为mu的泊松分布的随机数;

unifrnd(a,b,m,n) %产生m×n矩阵,其中的元素是服从区间[a,b]山均匀分布的随机数;

(7)随机置换

randperm(n) %产生1~n的一个随机全排列

perms([1:n]) %产生1~n的所有全排列

(8)求矩阵的逆

inv(a) %求矩阵a的逆

(9)方阵b对应的行列式的值

det(b) %方阵b对应的行列式的值

热心网友 时间:2022-04-12 13:52

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列的矩阵,需要注意的一维数组需要和转化的二维矩阵元素相等,如下图所示。

热心网友 时间:2022-04-12 15:10

你可以使用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

热心网友 时间:2022-04-12 16:44

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函数对原数组的抽取是按照列抽取的(对原数组按列抽取,抽取的元素填充为新数组的列)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com