创建对角矩阵(更高维度)

2024-02-20

我有一个n* m矩阵,说A。我想创建以下内容m* m*n矩阵,说B

for j=1:n
    B(:,:,j)=diag(A(j,:));
end

我该如何做到这一点而不需要循环?

Thanks


UPDATE:我已经编辑了问题以修复示例代码中的拼写错误。

我相当确定您的示例代码包含一些拼写错误,因为当前矩阵A没有任何作用,你的循环下标也没有j。然而,您实际上想问的似乎很可能是:如何构建一个 3d 数组,其中每个对角线(沿第三维移动)都是来自A,不做循环?

如果这是正确的,那么一个答案如下:

%# A loop-less solution
Soln2 = zeros(M, M, N);
Soln2(bsxfun(@plus, (1:M+1:M*M)', (0:M^2:(N-1)*M^2))) = A';

基本上我所做的就是预先分配解决方案 3d 数组,然后使用bsxfun构造所有对角线的线性索引,沿第三维移动。然后我分配转置A(因为您想要行而不是列)到解决方案数组中的线性索引。

请注意,我在下面粘贴了一些示例代码用于测试目的。请验证我对基于循环的解决方案的解释是否是您真正想要的。

%# Set some parameters and create a random matrix A
N = 3;
M = 4;
A = randi(5, N, M);

%# Your loop based solution
Soln1 = nan(M, M, N);
for n = 1:N
    Soln1(:,:,n) = diag(A(n,:));
end

%# A loop-less solution
Soln2 = zeros(M, M, N);
Soln2(bsxfun(@plus, (1:M+1:M*M)', (0:M^2:(N-1)*M^2))) = A';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建对角矩阵(更高维度) 的相关文章

  • 将组合字符串和数字输入的元胞数组写入文本文件

    考虑以下 DateTime 2007 01 01 00 00 2007 02 01 00 00 2007 03 01 00 00 Headers Datetime Data Dat 100 200 300 Data DateTime num
  • 类方法的自定义代码完成?

    在 MATLAB 中 可以定义代码建议和完成 如标题为 的文档页面中所述 自定义代码建议和完成 https www mathworks com help matlab matlab prog customize code suggestio
  • 通过傅里叶空间填充进行插值

    我最近尝试在 matlab 上实现一个在傅立叶域中使用零填充的插值方法的简单示例 但我无法正常工作 我总是有一个小的频移 在傅里叶空间中几乎不可见 但它在时空上产生了巨大的误差 由于傅里叶空间中的零填充似乎是一种常见 且快速 的插值方法 因
  • 优化 MATLAB 代码(嵌套 for 循环计算相似度矩阵)

    我正在 MATLAB 中基于欧几里德距离计算相似度矩阵 我的代码如下 for i 1 N M N is the size of the matrix x for whose elements I am computing similarit
  • 作为动画的八度情节点

    我有以下八度脚本 TOTAL POINTS 100 figure 1 for i 1 TOTAL POINTS randX rand 1 randY rand 1 scatter randX randY hold on endfor 当我运
  • 如何在Matlab中将世界坐标转换为像素索引

    我有 512x512x313 体积的 dicom 图像 并且我有一个以世界坐标表示的点 57 7475 63 4184 83 1515 我如何在 Matlab 中获得该世界坐标的相应像素坐标 我不想戳破你的幻想 但你所要求的是不可能的 我能
  • 如何加载具有可变文件名的 .mat 文件?

    select all mat files oar dir oar mat n oar name loop through files for l 1 length oar load pat oar l lt this is the mat
  • 从 imread 返回的 ndims

    我正在从文件夹中选取图像 尺寸为128 128 为此 我使用以下代码行 FileName PathName uigetfile jpg Select the Cover Image file fullfile PathName FileNa
  • 从筛查乳腺 X 光检查数字数据库 (DDSM) 获取数据

    我正在尝试以可读格式获取 DDSM 数据集 有谁有 DDSM heathusf 程序的工作版本 可以在 Linux 或 Windows 上正常运行吗 我知道 DDSM 的 jpeg 程序有一个适用于 linux 的工作版本 位于http w
  • 将数据提示堆栈放在轴标签顶部,并在轴位置发生更改后更新轴标签

    此问题仅适用于 unix matlab Windows 用户将无法重现该问题 我在尝试创建位于 y 轴标签顶部的数据提示时遇到问题 下图很能说明问题 正如您所看到的 在 ylabel 附近创建的数据提示将到达 ylabel 文本的底部 而期
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • 在 Matlab 的命令窗口中获取旧式帮助

    问题的简短版本 在最新版本的 Matlab 中 我在 Windows 上的 R2014b 和 R2015a 中看到过 当您键入help foo你得到一个简要描述 简介函数及其签名 例如 输入help bsxfun产生类似这样的东西 只有更好
  • 如何在向量中的所有点之间绘制线?

    我有一个包含二维空间中一些点的向量 我希望 MATLAB 用从每个点到每个其他点绘制的线来绘制这些点 基本上 我想要一个所有顶点都连接的图 你能用情节来做到这一点吗 如果可以 怎么做 一种解决方案是使用该函数为每个点组合创建一组索引MESH
  • 在 MATLAB 中模拟 C++ 模板

    我试图找出创建 C 模板或 Java 通用对象的替代方案的最佳方法 出于多种不同的原因 我过去曾多次想这样做 但现在我想做的是为几个相关的类创建 saveobj 和 loadobj 函数 我的想法是 我想要一组通用的例程来创建默认结构 然后
  • 我如何编写一个名为 dedbi 的 MATLAB 函数,它将输入 xtx 作为字符串并返回另一个字符串 xtxx 作为输出。

    dedbi 反转单词 即 a 将被 z 替换 b 将被 y 替换 c 将被 x 替换 依此类推 dedbi 将对大写字母执行相同的操作 即将字符串 A 替换为 Z 将 B 替换为 Y 将 C 替换为 X 依此类推 如果我给函数这个字符串 a
  • for 循环中的绘图没有可见点

    我正在努力解决我想使用 for 循环制作的情节 我知道当我在循环之后添加它时它会起作用 只是一个简单的图 但我想用另一种方式尝试一下 fib ones 1 10 for k 3 10 hold on fib k fib k 1 fib k
  • Ilnumerics Ilpanel 在 winform 中编译成 dll 并加载到 matlab 时不激活

    我想将 Visual studio 2012 中用 C 编写的 winform 编译为 dll 然后将其加载到 matlab 2013a 中 然后 我想使用 matlab net 接口与 winform 进行交互 侦听其事件并通过一组预定义
  • 将 kinect RGB 和深度值转换为 XYZ 坐标

    我正在寻找一种简单的方法将 kinect RGB 和深度值转换为 XYZ 坐标 使用 MATLAB 我的目标是一个输入为以下内容的函数 每个点的 RGB 和深度值Kinect相机 并输出 每个点的 x y 和 z 值 RGB 深度 RGB
  • MATLAB 除法...29/128 应该返回 0 吗?

    我真的不认为这是一个精度问题 答案应该是0 226左右 这是确切的代码 val I i j bucketSize pos val bucketSize I只是我从中获取值的矩阵 以下是 MATLAB 的输出 val 29 bucketSiz
  • 在 Matlab 中保存 Kinect 深度图像?

    通过使用 Kinect 我可以获得深度图像 其中每个深度图像像素存储相机和物体之间的距离 以毫米为单位 现在我想保存它们以便以后使用 最好的推荐是什么 我正在考虑将深度图像保存为图像 jpg png等 然而 该值通常是从50毫米到10000

随机推荐

  • 如何建立 FTP 连接?

    我正在尝试使用 iPhone iPad 模拟器 Xcode 设置 FTP 连接 到目前为止 我发现我需要使用 CFFTP API 但我没有成功 我浏览了网络 最终遵循了我认为最清楚的内容 即 http developer apple com
  • MySQL服务器“正在读取初始通信数据包”,系统错误:111 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我将我的网站移至戈达迪服务器 但是即使进行了足够的更改 SQL 连接也无法工作 而之前工作得很好
  • FormsAuthenticationTicket.expiration v web.config 值超时

    这是一个 MVC2 网站 我在 FormsAuthentication 票证方面遇到问题 用户超时30分钟后无法重新登录 在测试期间 DateTime Now AddMinutes 30 值设置为 5000 一切正常 但现在已更改为 30
  • 如何为 Swagger UI 定义 [FromQuery] 参数的默认值?

    我有一个行动 HttpGet Route foo public ActionResult Foo FromQuery MyClass request var image ToImage WidgetType MedianSalesPrice
  • 什么是以及如何从我的数据库中删除表空间错误? [复制]

    这个问题在这里已经有答案了 由于负载脱落问题 我的数据库中的一张表已损坏 我删除了该表 现在我想再次创建该表 我明白了error 错误 1813 表 的表空间zorkif sys user accounts 存在 请在导入之前丢弃表空间 S
  • 如何/在哪里定义 Xcode 中的 App ID 前缀?

    作为一名新的 iOS 开发人员 我尝试为我的应用程序定义 Bundle Seed ID 应用程序 ID 前缀 Xcode 中如何 在哪里定义 Bundle Seed ID 应用程序 ID 前缀 请提供详细步骤 链接在这里 https dev
  • 在设计模式下显示带有自定义控件的 WinForm 时出错

    我有一个属于类库一部分的用户控件 我从我的解决方案中引用了这个项目 这会将引用项目中的控件添加到我的工具箱中 我将控件添加到表单中 一切看起来都不错 我编译并运行 完美的 但是当我关闭带有控件的 frm 并重新打开它时 出现此错误 代码继续
  • nsdictionary 中的块?

    因此 我将块操作存储到 nsmutabledictionary 中 然后在 Websocket 上返回响应时调用它们 这会将异步请求转换为块语法 这是精简的代码 void sendMessage NSString message respo
  • Gradle compileKotlin includeRuntime 未将运行时添加到 jar

    我有一个 Kotlin Gradle 项目 我想在 jar 文件中包含 Kotlin 的运行时和 stdlib 我目前正在使用它 但当我使用 build gradle 配置构建项目时 它不包括运行时或 stdlib compileKotli
  • 不循环C++计算数字的位数

    我必须计算一个数字的位数 我将数字除以 10 直到得到 0 每次迭代都会递增计数器 int num cin gt gt num while num gt 0 counter num num 10 挑战不在于使用任何循环或递归 而只是使用if
  • Spring Boot - 创建泛型存储库

    我的 Web 应用程序中有许多服务执行经典的 CRUD 操作 这些是参数部分 为了避免为每个实体类创建一个存储库接口 我想创建一个通用存储库 我尝试了下面的代码 但只有当我有一个控制器时才有效 public class BaseContro
  • python 中的公平信号量

    python 中是否有可能有一个公平的信号量 它可以保证阻塞线程按照它们调用的顺序解除阻塞acquire 您可能必须用其他活动部件来构建一个 例如 创建一个Queue Queue 每个听众都会发布一个全新的Event 然后它会等待 当需要唤
  • delphi 中打印到非默认打印机

    我想使用 Delphi 将打印作业发送到打印机 理想情况下 我希望能够在不让用户从打印对话框中选择打印机的情况下执行此操作 我希望能够使用 Windows 默认打印机以外的打印机 我尝试通过打印机名称设置打印机 Vcl Printers P
  • 如何处理尺寸未知的二维数组?

    我正在编写一个用于矩阵乘法的 C 函数 它需要两个二维整数数组 如果我知道输入数组的尺寸 我就可以做到这一点 但我想创建一个更通用的函数 如何找到它们的尺寸 以及当我在编译时不知道产品的尺寸时如何返回数组 如果您只有指向数组开头的指针 则无
  • 来自 C# 的多个 CMD 命令?

    所以我想知道 如何使用 C 在 CMD 中执行多个命令 我的意思是 我有一个 exe 文件 它依赖于通过 cmd 变量 VAMP PATH 查找文件 是的 我正在使用 VAMP 插件 所以我在 CMD 中使用它的方式是 set VAMP P
  • 安卓JSON解析

    我需要有关我的代码的建议 我正在尝试解析 PHP 函数生成的 JSON 数组json encode My json data streamer froggen yt length 25078 streamer wingsofdeath yt
  • Twitter Bootstrap 包含 jQuery 吗?

    Does 推特引导程序 http getbootstrap comv3 包括jQuery http jquery com 或者我需要单独包含 jQuery 吗 如果它确实包含 jQuery 则包含什么版本 编号 的 jQuery 以及使用
  • 禁用向访问网站的用户提示“记住我的密码”

    所以我有一个 ASP Net MVC 网站 我想知道是否有可能让用户必须手动输入密码 这样浏览器就不会自动填充密码 这似乎是一个简单的问题 但通过谷歌搜索我只是得到了有关客户如何禁用提示的说明 我从来没有用过它 但是有一个自动完成属性 当禁
  • 在提交到服务器之前如何在 Fine Uploader 中获取图像的尺寸并验证它?

    我使用的是5 11 10版本精美上传者 http fineuploader com 我知道有一个验证 http docs fineuploader com branch master api options html validationF
  • 创建对角矩阵(更高维度)

    我有一个n m矩阵 说A 我想创建以下内容m m n矩阵 说B for j 1 n B j diag A j end 我该如何做到这一点而不需要循环 Thanks UPDATE 我已经编辑了问题以修复示例代码中的拼写错误 我相当确定您的示例