创建“金字塔”矩阵

2023-11-26

假设给定一个具有奇数长度的对称行向量,其中每个元素都小于向量前半部分的下一个元素,并且每个元素都大于后半部分的下一个元素,并且中间元素是最大的。 (例如[1 2 3 2 1] or [10 20 50 20 10]).

我想创建一个方阵,其中行向量是它的中间行,等效的列向量(v')是它的中间列,每个其他行或列都是给定向量根据该行或列中的中间元素的缩减版本。当不再有“原始元素”时,我们将0.

例子:

if v = [1 2 3 2 1] we get

0 0 1 0 0  
0 1 2 1 0  
1 2 3 2 1  
0 1 2 1 0  
0 0 1 0 0

if v = [3 5 3] we get

0 3 0  
3 5 3  
0 3 0  

到目前为止我所做的:我设法创建了一个矩阵v作为中间行和v'作为中间一栏,我写了这段代码:

s = length(vector);
matrix= zeros(s);
matrix(round(s/2),:) = vector;
matrix(:, round(s/2)) = vector';

但在分配其他值时遇到了困难。


更实用的方法是将矩阵生成为马赛克,从hankel矩阵。为了进行性能比较,这里有一个使用相同格式的版本@Divakar的解决方案:

function out=pyramid_hankel(v)

%I suggest checking v here
%it should be odd in length and a palindrome    

i0=ceil(length(v)/2);
v2=v(i0:end);

Mtmp=hankel(v2);
out=zeros(length(v));
out(i0:end,i0:end)=Mtmp;
out(1:i0-1,i0:end)=flipud(Mtmp(2:end,:));
out(:,1:i0-1)=fliplr(out(:,i0+1:end));
>> pyramid_hankel([1 2 3 2 1])

ans =

     0     0     1     0     0
     0     1     2     1     0
     1     2     3     2     1
     0     1     2     1     0
     0     0     1     0     0

For v=[1 2 3 2 1]起始块是hankel([3 2 1]),即

ans =

     3     2     1
     2     1     0
     1     0     0

从这里应该清楚发生了什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建“金字塔”矩阵 的相关文章

  • 重新排列数组键 php [重复]

    这个问题在这里已经有答案了 我有这个数组 Array 15 gt 13 1 16 gt Mark one answer 19 gt You see a car on the hard shoulder of a motorway with
  • Minizinc:生成有效的转变

    希望有人能帮助我解决这个问题 最初的问题是生成有效的班次 如下所述 我有这样的数组 m m m o o l l m m m l m m m 具有固定长度 S 其中 m 是工作 o 是办公室 我自由了 我需要确保至少每 6m 就有两个 l 在
  • 每个术语出现的次数

    我得到了一个数组a n 2 where n can be 10 5最大时有n个科目和n个学生 全部编号为 1 2 n a i 0 and a i 1 1 lt i lt n 表示在第 i 个科目中 所有来自a i 0 to a i 1 通过
  • Numpy - 根据表示一维的坐标向量的条件替换数组中的值

    我有一个data多维数组 最后一个是距离 另一方面 我有距离向量r 例如 Data np ones 20 30 100 r np linspace 10 50 100 最后 我还有一个临界距离值列表 称为r0 使得 r0 shape Dat
  • 如何在 MATLAB 编译的应用程序中运行外部 .m 代码? [复制]

    这个问题在这里已经有答案了 我有一个 MATLAB 项目 我使用 MCC 对其进行编译以获得单个可执行文件 然后我想知道外部程序员是否可以在 exe 中执行他的一些 m 文件 而无需重新编译整个项目 重点是提供一个应用程序 其他开发人员可以
  • 将多维数组转换为单数组(Javascript)

    我有一个对象数组 来自 XLSX js 解析器 因此其长度和内容各不相同 表示已给予项目的资助 简化后 它看起来像这样 var grants id p 1 location loc 1 type A funds 5000 id p 2 lo
  • 使用 UISearchBar 过滤数组

    我目前正在使用以下代码来过滤数组并将结果显示在我的 tableView 中 问题是 只有当搜索与确切的单词匹配时 才会返回结果 如何更改数组过滤器以在输入时搜索每个字符 let data Mango Grape Berry Orange A
  • 格式化多维数组 Python

    如何编写代码来更改多维数组中每个单独数组的值a出现负值后立即归零 所以里面的第二个数组a有负值 12 34 5 6 88 10 30 75 10 会将其所有值及其后的值转为零 将数组变成 12 34 5 6 88 0 0 0 我怎样才能获得
  • 如何循环结构体数组并显示所有键值

    我正在循环结构数组并尝试分配和存储所有键值 如果我将内循环包裹起来
  • 如何将我的 json 字符串 avro 二进制编码为字节数组?

    我有一个实际的 JSON 字符串 我需要将其 avro 二进制编码为字节数组 在经历了Apache Avro 规范 http avro apache org docs 1 7 7 spec html 我想出了下面的代码 我不确定这是否是正确
  • 将数组字段组合成单个数组字段 mongo

    我正在使用 mongo 版本 3 4 3 我的文档存储在 mongo 中 如下所示 id ObjectId 5ad5ab8aaf2808b739ba6ab2 ResumeId 105839064 ResumeDetails WorkProf
  • 在 RcppArmadillo 中将列向量乘以数值标量

    我在编译这个简单的程序时遇到一些麻烦c 代码使用Rcpp和RcppArmadillo包裹 采用以下简单示例 将矩阵的每一列乘以数值标量 code lt arma mat out Rcpp as
  • 显示和随机化 php 数组

    我有一个显示结果的数组 如下所示 Array 0 gt 71 1 gt 56 2 gt 64 3 gt 82 4 gt 90 5 gt 80 6 gt 65 7 gt 62 8 gt 14 9 gt 3 我的代码是 while row my
  • 矩阵乘法 - 视图/投影、世界/投影等

    在 HLSL 中有很多矩阵乘法 虽然我了解如何以及在何处使用它们 但我不确定它们是如何导出的或它们的实际目标是什么 所以我想知道是否有在线资源可以解释这一点 我特别好奇将世界矩阵乘以视图矩阵以及世界 视图矩阵乘以投影矩阵背后的目的是什么 您
  • 使用 Matrix.setPolyToPoly 选择位图上具有 4 个点的区域

    我正在 Android 上使用位图 在使用 4 个点选择位图上的区域时遇到问题 并非所有 4 点组都适合我 在某些情况下 结果只是一个空白位图 而不是裁剪后的位图 如图所示 并且 logcat 中没有任何错误 甚至是内存错误 这是我用来进行
  • 在 Matlab 中保存 Kinect 深度图像?

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

    我有一个愚蠢的问题 乍一看似乎很容易解决 但结果却很棘手 我有一个对象数组 每个对象都有两个属性 id 和 value id 2 value 10 id 4 value 3 id 2 value 2 id 1 value 15 我想编写一个
  • TypeScript 枚举到对象数组

    我有一个这样定义的枚举 export enum GoalProgressMeasurements Percentage 1 Numeric Target 2 Completed Tasks 3 Average Milestone Progr
  • 在网格中查找具有相同值的相邻单元格。想法如何改进这个功能?

    我是 Python 新手 学习了 1 个多月 我尝试创建 Tic Tac Toe 然而 一旦我完成了它 我决定扩展棋盘 从 3x3 到 9x9 具体取决于客户的输入 并通过在棋盘上的任意位置连接 4 个行 列或对角线来获胜 因此 我需要一个
  • 如何将 UDF 中的结构或类数组返回到数据帧列值中?

    d ID 1 pID 1000 startTime 2018 07 02T03 34 20 endTime 2018 07 03T02 40 20 ID 1 pID 1000 startTime 2018 07 02T03 45 20 en

随机推荐

  • 如何在 WooCommerce 评论表单上添加“评论标题”字段?

    I want to add a custom field to my reviews form on WooCommerce just like this image And then how to get the output of th
  • Retrofit 2.0中如何使用拦截器添加Headers?

    我们的团队决定采用改造2 0我正在对此进行一些初步研究 我是这个图书馆的新手 我想知道如何使用interceptor通过添加自定义标头改造2 0在我们的 Android 应用程序中 有许多教程关于使用interceptor在Retrofit
  • 将自定义属性包装器与@Published相结合

    我希望将自定义属性包装器应用于已包装的变量 Published 像这样嵌套它们 A Custom Published var myVar or B Published Custom var myVar 注意包装纸的应用顺序 如果是 A 我收
  • 服务器(PC)上的实时视频流来自机器人通过 UDP 发送的图像

    唔 我发现这似乎很有希望 http sourceforge net projects mjpg streamer 好的 我将尝试清楚 详细地解释我想做的事情 我有一个带有摄像头和 wifi 棒的小型人形机器人 这是机器人 机器人的 WiFi
  • 至少 8 + 大小写 + 数字或其他非字母的正则表达式

    至少包含 8 个字符 包含大写和小写字母 包含数字或其他非字母字符 上述标准的正则表达式可能是什么 我正在创建一个更强的密码检查 我正在使用c 这应该可以做到 a z A Z a zA Z 8 看这里 rubular 解释 a z look
  • 带有输入和输出的 std::fstream 应该如何工作?

    我刚刚开始想知道 实际上是怎样的std fstream两者都打开std ios in and std ios out实际上应该工作吗 它应该做什么 向 例如 空文件写入一些内容 然后读取 什么 只是写值吗 文件 指针 光标 在哪里 也许答案
  • 打印组合字符串和数字

    要在Python中打印字符串和数字 除了执行以下操作之外还有其他方法吗 first 10 second 20 print First number is first d and second number is second d first
  • Ember 组件中的共享状态

    我试图构建一个简单的列表 其中附加小部件作为 Emberjs 组件 以下是我使用的代码 HTML
  • 如何使用 async/await 去抖?

    我有一个输入框 用户停止输入后 我想执行 HTTP 请求并等待结果 这是一个jsbin 由于 jsbin 上不允许网络请求 所以我使用了setTimeout 反而 var log console log bind console var d
  • PowerShell 删除项目不等待

    如果有这段代码 if Test Path Path OUT Remove Item OUT Recurse New Item ItemType directory Path OUT 有时它可以工作 但有时 New Item 行会产生一个权限
  • 通配符子域和静态子域的虚拟主机

    我有一个奇怪的情况 我想要 URLapp1 example com example com and example com全部使用不同的虚拟主机 这就是我所拥有的 不包括example com因为它只会让事情变得更加混乱
  • JNI:无法从回调中的本机方法找到 java 类

    我对 JNI 还很陌生 并且正在努力解决这个问题 我有一个由网络库 alljoyn 调用的 C 回调 在这个回调中 我需要调用Java代码 由于此回调位于另一个线程中 因此我使用以下代码来获取 JNIEnv 指针 jvm是全局指针 JNIE
  • HTML5 canvas ctx.fillText 不会换行吗?

    如果文本包含 n 我似乎无法将文本添加到画布 我的意思是 换行符不显示 工作 ctxPaint fillText s ome n n br thing x y 上面的代码将会绘制 s ome n br thing 在一条线上 这是 fill
  • iPhone:以编程方式使用前置摄像头拍照

    我想通过我的 iPhone 应用程序中的前置摄像头以编程方式拍照 我不希望用户选择图像选择器或与图像选择器进行任何交互 只想拍摄图像并将其保存在文档中 这可能吗 我从你的问题中了解到 AV Foundation 就是你所需要的 看看苹果的这
  • MySQL - 从字符串中搜索确切的单词

    我想从字符串中搜索确切的单词 例如 id Description 1 This is nice pen looking good 2 This is nice pendrive looking good 搜索字符串 pen 我当前的查询 S
  • 是否可以设置更高的轴标签 z 索引?

    在以下代码中 轴的标签隐藏在图形线后面 import numpy as np import matplotlib pyplot as plt X np linspace np pi np pi 256 endpoint True C S n
  • Linq int 到 string

    如何将 和 int 转换为字符串 以下均无效 from s in ctx Services where s Code ToString StartsWith 1 select s from s in ctx Services where C
  • 如何使用SQL查找表中N个连续记录

    我有以下带有示例数据的表定义 在下表中 客户产品和日期是关键字段 Table One Customer Product Date SALE X A 01 01 2010 YES X A 02 01 2010 YES X A 03 01 20
  • 通过带范围的关联保存时丢失属性 (Rails 4.0.0)

    代码 Rails 4 0 0 class Track lt ActiveRecord Base has many artist tracks has many owning artists gt where artist tracks gt
  • 创建“金字塔”矩阵

    假设给定一个具有奇数长度的对称行向量 其中每个元素都小于向量前半部分的下一个元素 并且每个元素都大于后半部分的下一个元素 并且中间元素是最大的 例如 1 2 3 2 1 or 10 20 50 20 10 我想创建一个方阵 其中行向量是它的