当前位置: 首页 > news >正文

Matlab矩阵——矩阵行列互换

问题:如何将 1*n 的矩阵转换为指定 M*N 的矩阵,或者将 M*N 的矩阵转换为 1*n 的矩阵?

处理方法:使用 reshape 函数进行矩阵的行列互换

分两种情况如下:

一、将 1*n 的矩阵转换为指定 M*N 的矩阵

假如有4个坐标值:

% 4 个坐标数据
x1 = [100,202,566];
x2 = [125,160,488];
x3 = [251,264,945];
x4 = [457,485,584];
Pos = [x1,x2,x3,x4];

将其转为 4*3 的矩阵,

M = 4;  % 代表行数
N = 3;  % 代表列数
Poss = reshape(Pos,[M N]);%{ 其结果为:Poss = [100   160   945202   488   457566   251   485125   264   584]
%}

很明显结果并不是我们想要的,这是由于 reshape 函数是按列进行排序的,所以我们在转换的时候要将行数设为 3,列数为坐标点的个数 (即 4),然后将转换后的取转置即可得到我们想要的格式,具体如下所示:

M = 3;                       % 代表行数,即三维坐标
N = 4;                       % 代表列数,即几个坐标点
POs = reshape(Pos,[M N])';  % 转换后的坐标%{ 其结果为:POs = [100   202   566;125   160   488;251   264   945;457   485   584];
%}

可以看到,结果是对的。

二、将 M*N 的矩阵转换为 1*n 的矩阵

同样使用 reshape 函数,不同的是维度的选取,如下所示:

POs = [100,202,566;125,160,488;251,264,945;457,485,584];
M   = 1;                    % 行数
N   = 12;                  % 列数,也可写成 [],系统会自动计算列数
POS = reshape(POs,M,[]);% 结果为:POS = [100   125   251   457   202   160   264   485   566   488   945   584];% 很明显结果不对,我们需要将 POs 取转置后再进行转换,即POS = reshape(POs',M,[]);  % 此时,结果正确% 结果为:POS = [100   202   566   125   160   488   251   264   945   457   485   584]% 和初始 Pos 结果一致

完整矩阵行列互换如下:

close all; clear all; clc;% 4 个坐标数据x1 = [100,202,566];
x2 = [125,160,488];
x3 = [251,264,945];
x4 = [457,485,584];
Pos = [x1,x2,x3,x4];  % 即:Pos = [100,202,566,125,160,488,251,264,945,457,485,584];% 设置行列数M1 = 3;  % 代表行数,即三维坐标
N1 = 4;  % 代表列数,即几个坐标点
POs = reshape(Pos,[M1 N1])';%{ 其结果为:POs = [100   202   566;125   160   488;251   264   945;457   485   584];
%}M2  = 1;   % 代表行数
N2  = [];  % 代表列数,也可用列数值代替
POS = reshape(POs',M2,N2);% 结果为:POS = [100   202   566   125   160   488   251   264   945   457   485   584]% 和初始 Pos 结果一致

仅供参考。

http://www.xdnf.cn/news/804889.html

相关文章:

  • 精通Hyperledger之docker学习笔记(1.2)
  • 区域经济学(知识要点)
  • Java环境变量怎么配置
  • C#学习笔记(三)---------Repeater的一些常规用法
  • 部署Windows Server Update Services(WSUS)服务器
  • 三星GT-P1000完美刷机教程,附ROM刷机包下载
  • Web前端:JavaScript最强总结 附详细代码 (带常用案例!)_javascript在前端的应用
  • 汇编语言定时器实验
  • 如何给移动硬盘分区?(移动硬盘分区详细指南)
  • WindowsXP 设置优化操作终极全攻略
  • Dos命令大全完整版
  • 前端网页设计必逛的六个宝藏网站(非常值得收藏)
  • 如何让爬虫一天抓取100万张网页
  • 商品软文怎么写?媒介盒子教你三步
  • 网络安全应急响应----5、勒索病毒应急响应
  • 猎豹浏览器发布2.0版,性能大幅提升
  • 金算盘高手论坛资料中心_3D002期 菜鸟论坛精英PK专栏 速来围观!!
  • 关于Mathtype5.0/5.2(推荐5.2)在word中的公式自动编号和引用编号的方法
  • 怎样给QQ好友播放假视频——————【Badboy】
  • Windows下 OracleXE_21 数据库的下载与安装
  • ARM Exploitation
  • DC的逻辑综合与优化
  • 云计算 Linux Rocky day03(which、快捷键、mount、家目录、ls、alias、mkdir、rm、mv、cp、grep)
  • 华为u9508荣耀2四核 Emotion UI B530精简ROOT刷机包【安全线刷模式,11月25日更新】
  • Exadata使用技巧 (-)
  • 【DGL学习1】GCN example
  • 优米网视频-在路上第四期:林正刚-外企职场心态
  • 《饭局也疯狂》范伟 黄渤 刘桦 最新喜剧大片下载,DVD 816MB 480P普清下载!
  • Ubuntu10.04版本下載地址
  • Web课程设计:旅游景点网站设计——北京故宫(9页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码