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.mzph.cn/news/101217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型语言模型:DistilBERT — 更小、更快、更便宜、更轻

一、介绍 近年来,大型语言模型的演进速度飞速发展。BERT成为最流行和最有效的模型之一,可以高精度地解决各种NLP任务。在BERT之后,一组其他模型随后出现在现场,也展示了出色的结果。 很容易观察到的明显趋势是,随着时间…

推荐开源工具带带弟弟ocr_ddddocr_各种验证码都可以识别_滑动_点击_等等---验证码识别工作笔记001

这个很强大了,常见的各种验证码都可以识别,如果你项目上也有需要,比如需要实现系统的自动登录,这个时候就很有用了,这里仅仅给出方案,具体如何用,用的时候在做研究吧,好东西要记录,分享给需要的人.使用的时候 自己去查一下如何使用非常简单. 支持点击的验证码,支持数字验证码就…

Three.js

定义: three,js,一WebGL引擎(也叫库),基于javaScript,可直接运行GPU驱动游戏与图形驱动应用于浏览器。其库提供大量特性与API以绘制3D场景于浏览器。 WebGL:Web图形库,一组浏览器的API,可以无需其他插件,独…

【C++】哈希

🚀write in front🚀 📜所属专栏: C学习 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对我最大…

rust cfg的使用

前提是一个crate倒入另一个crate。 先看结构 test_lib目录结构 这与另一个crate处于同一个目录,所以另一crate倒入的时候在Cargo.toml中使用如下语句。 test_lib = {path = "../test_lib" }先在test_lib/src/abc/abc.rs中添加没有cfg的两个函数做测试。 pub fn…

GitHub访问慢解决办法

找到C盘目录 C:/Windows/system32/drivers/etc/hosts修改hosts文件内容,尾部复制粘贴 199.232.69.194 github.global.ssl.fastly.net 140.82.112.4 www.github.com 185.199.108.153 assets-cdn.github.com 185.199.109.153 assets-cdn.github.com 185.199.110.153…

ViewModifier/视图修饰符, ButtonStyle/按钮样式 的使用

1. ViewModifier 视图修饰符 1.1 创建默认按钮视图修饰符 ViewModifierBootcamp.swift import SwiftUI/// 默认按钮修饰符 struct DefaultButtonViewModifier: ViewModifier{let bcakgroundColor: Colorfunc body(content: Content) -> some View {content.foregroundColor…

流式数据湖平台Hudi核心概念三:索引

1.索引 Hudi通过索引机制将给定的hoodie key(record key+分区路径)映射到文件id,实现了高效的upstart。一旦将记录的第一个版本写入文件,record key和文件组/文件id之间的映射就永远不会改变。简而言之,映射的文件组包含一组记录的所有版本。 对于Copy-On-Write表,可以实…

C/C++之自定义类型(结构体,位段,联合体,枚举)详解

个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂。 目录 个人主页:点我进入主页 …

css 滚动贴合

大部分人基本上都会使用JS实现页面的滚动贴合效果&#xff0c;在学习的过程中&#xff0c;偶然发现原生CSS实现滚动贴合效果的方法&#xff1b; html 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><tit…

Linux系统导入导出docker容器的sql数据

Linux系统导入导出docker容器的sql数据 一 要从Docker容器中将数据库导出到本地 确保您已经安装了Docker&#xff0c;并且已经运行了包含数据库的Docker容器。 检查容器中运行的数据库服务的名称或容器ID。您可以使用命令 docker ps 来列出正在运行的容器和相关信息。 使用…

MySQL 安装+启动+报错的解决方案

目录 一、安装准备 1.1 下载 1.2 版本说明 二、安装步骤 2.1 解压缩 2.2 配置环境变量 2.3 配置文件 2.4 安装 2.5 启动/停止服务 三、使用说明 3.1 用户名密码登录 3.1 设置用户名密码 四、卸载步骤 4.1 卸载服务 五、安装问题 六、启动问题 6.1 提示【服务无…

web基础和http协议

1.DNS解析的三种方式 DNS解析&#xff1a; 网站都是域名&#xff1a;dns解析的作用是把域名解析成ip地址 迭代&#xff1a;从跟域名到二级域 返回用户的过程&#xff1a;递归---运营商--本地hosts---用户 三种方式&#xff1a; /etc/hosts 本地解析&#xff0c;速度最快&…

JAVA 泛型的定义以及使用

泛型类 /*** <T> 为该类定义泛型&#xff0c;可以是一个或多个<T,...>* 定义的泛型可以在类中作为&#xff1a;* 类变量类型&#xff1a; T data* 类方法的入参以及返回类型 public void setData(T data)&#xff0c;public T getData();次数以set&a…

岩土工程安全监测无线振弦采集仪在无线组网的关键要点

岩土工程安全监测无线振弦采集仪在无线组网的关键要点 岩土工程是一种奇特而又极其重要的工程。它涉及到土地、岩石、气候等等因素&#xff0c;需要重视安全因素。而无线振弦采集仪作为一种常用的监测设备&#xff0c;可以采集岩土工程中的振动数据&#xff0c;从而确保工程的…

智慧安防AI视频智能分析云平台EasyCVR加密机授权小tips

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

PySpark 线性回归

Spark ML 简介 Spark ML 是 Spark 提供的一个机器学习库&#xff0c;用于构建和训练机器学习模型。它提供了一系列常用的机器学习算法和工具&#xff0c;包括分类、回归、聚类、模型评估等。我们可以使用 PySpark 中的 Spark ML 来训练和评估我们的机器学习模型。 模型训练 …

Transformer模型 | Python实现基于LSTM与Transfomer的股票预测模型(pytorch)

文章目录 效果一览文章概述LSTM模型原理时间序列模型从RNN到LSTMLSTM预测股票模型实现结语程序设计参考资料效果一览 文章概述 基于LSTM与Transfomer的股票预测模型 股票行情是引导交易市场变化的一大重要因素,若能够掌握股票行情的走势,则对于个人和企业的投资都有巨大的帮…

【AntDesign】多环境配置和启动

环境分类&#xff0c;可以分为 本地环境、测试环境、生产环境等&#xff0c;通过对不同环境配置内容&#xff0c;来实现对不同环境做不同的事情。 AntDesign 项目&#xff0c;通过 config.xxx.ts 添加不同的后缀来区分配置文件&#xff0c;启动时候通过后缀启动即可。 config…

Maven教程

Maven介绍 Maven 环境配置 Maven Pom Maven 构建生命周期 Maven 构建配置文件 Maven 插件 Maven 仓库 Maven 构建Java项目 Maven 构建&项目测试 Maven 引入外部依赖 Maven 项目模板 Maven 项目文档 Maven 快照(SNAPSHOT) Maven 自动化构建 Maven 依…