matlab reshape()、full()

本文介绍如何使用reshape()函数重构矩阵,并保持元素数量不变。同时,详细讲解了稀疏矩阵的两种存储方式及其相互转换的方法。

一、reshape()

  对于这个函数,就是重构矩阵。

(1)要求:重构前后的矩阵元素个数一致。如3*4矩阵可以重构成2*6,2*3*2等。

(2)重构方法:先按列将矩阵转换为向量,然后在向量的基础之上,又按照新矩阵的列截取组成。例如,3*4矩阵可以重构成2*6:

   1   2   3

       4   5   6

       7   8   9

       10 11 12

先按列写成:1 4 7 10 2 5 8 11 3 6 9 12 

按新矩阵的列截取:1 4| 7 10 |2 5| 8 11| 3 6| 9 12 

更多请点击

二、full()

稀疏矩阵两种存放方式:

A = [0, 0, 0; 0, 1, 0; 1, 0, 0];
S =  sparse(A)
A = full(S)
输出结果:
>> A = [0, 0, 0; 0, 1, 0; 1, 0, 0];
 
法1:
S = sparse(A)
 
法2:
A = full(S)
S =
(3,1) 1
(2,2) 1
A =
0 0 0
0 1 0
1 0 0

 

转载于:https://www.cnblogs.com/Wanggcong/p/4761564.html

### 创建或表示 n×n 矩阵的方法 在 MATLAB 中创建一个 \( n \times n \) 的矩阵可以通过多种方式实现。以下是几种常见的方法: #### 方法一:手动输入法 可以直接通过方括号 `[]` 手动定义矩阵中的元素。例如,对于一个 3×3 的矩阵可以这样写: ```matlab A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; ``` 如果要生成任意大小的 \( n \times n \) 矩阵,则需要替换具体的数值为变量或者函数调用[^1]。 #### 方法二:使用内置函数 eye(n) MATLAB 提供了一个非常方便的命令来生成单位矩阵(Identity Matrix),即 `eye(n)` 函数。该函数会返回一个 \( n \times n \) 大小的身份矩阵。 ```matlab I = eye(5); % Creates a 5x5 identity matrix. ``` #### 方法三:随机数生成 rand(n,n) 为了快速生成填充有随机浮点数的一个 \( n \times n \) 矩阵,可利用 `rand` 函数。 ```matlab R = rand(4, 4); % Generates a 4x4 matrix filled with random values between 0 and 1. ``` #### 方法四:全零/全一阵列 zeros 和 ones 分别用于初始化全部由零组成的数组以及全部由一构成的数组。这对于某些特定算法初始条件设置很有帮助。 ```matlab ZerosMat = zeros(3, 3); % Produces a 3x3 array full of zeroes. OnesMat = ones(2, 2); % Results in a 2x2 grid containing only 'ones'. ``` #### 方法五:线性空间 linspace 或 logspace 配合 reshape 当希望得到具有规律分布数据项的大规模方形表格时,linspace 可以先建立向量再调整形状成为二维形式。 ```matlab LinearSpaceVec = linspace(-pi, pi, 9); SquareMatrixFromLinSpa = reshape(LinearSpaceVec, 3, 3); ``` 以上就是一些基本且实用的技术手段用来构建不同类型的正方形维度的数据结构于 Matlab 平台之上[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值