用Matlab对角展开矩阵

2023-11-30

我有一个矩阵B我想获得一个矩阵C维度的(L+k)*m by L*n. L and k是输入值。B0 , B1 , ... , Bk有尺寸m by n.

enter image description here

例如 :

如果我有一个矩阵B = [1 1 ; 1 1 ; 1 1] with B0 = [1 1], B1 = [1 1] and B2 = [1 1],以及每个B0 , B1 , B2维度的1 by 2 with k = 2 and L = 4.

然后矩阵C获得的由下式给出C = [1 1 0 0 0 0 0 0 ; 1 1 1 1 0 0 0 0 ; 1 1 1 1 1 1 0 0 ; 0 0 1 1 1 1 1 1 ; 0 0 0 0 1 1 1 1 ; 0 0 0 0 0 0 1 1]和维度6 by 8.

enter image description here

我想将我的程序推广到任何大小的矩阵B.

我的程序解决了这个问题B = [1 1 ; 1 1 ; 1 1] with m = 1 , n = 2 , k = 2 and L = 4.

我的代码:

clc;
clear;

k = 2;                    
L = 4;                   

B = [1 1 ; 1 1 ; 1 1];    
B0 = [1 1];
B1 = [1 1];
B2 = [1 1];
m = size(B0,1);
n = size(B0,2);

c = [B ; zeros(size(B))];
C = zeros((L+k)*m,L*n);

for i = 1:L
    
    C(:,2*i-1:2*i) = circshift(c,i-1,1);
    
end

结果 :C =

1   1   0   0   0   0   0   0
1   1   1   1   0   0   0   0
1   1   1   1   1   1   0   0
0   0   1   1   1   1   1   1
0   0   0   0   1   1   1   1
0   0   0   0   0   0   1   1

我很难概括任何给定的矩阵B并且对于任何值k and L.

有什么建议么?


B = [1 2 3; 4 5 6; 7 8 9; 100 110 120; 130 140 150; 160 170 180];  % input
L = 4;                                                             % input
k = 2;                                                             % input
m = size(B,1)/(k+1);              % obtain m
n = size(B,2);                    % obtain n
C = zeros((L-1)*m+1, (L-1)*n+1);  % initiallize result
C(1:((L-1)*m+1)*n+m:end) = 1;     % each 1 marks the upper-left corner for a copy of B
C = conv2(C, B);                  % insert copies of B, extending size

倒数第二行使用线性分度。最后一行适用二维卷积。本例中的结果是

B =
     1     2     3
     4     5     6
     7     8     9
   100   110   120
   130   140   150
   160   170   180

C =
     1     2     3     0     0     0     0     0     0     0     0     0
     4     5     6     0     0     0     0     0     0     0     0     0
     7     8     9     1     2     3     0     0     0     0     0     0
   100   110   120     4     5     6     0     0     0     0     0     0
   130   140   150     7     8     9     1     2     3     0     0     0
   160   170   180   100   110   120     4     5     6     0     0     0
     0     0     0   130   140   150     7     8     9     1     2     3
     0     0     0   160   170   180   100   110   120     4     5     6
     0     0     0     0     0     0   130   140   150     7     8     9
     0     0     0     0     0     0   160   170   180   100   110   120
     0     0     0     0     0     0     0     0     0   130   140   150
     0     0     0     0     0     0     0     0     0   160   170   180
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用Matlab对角展开矩阵 的相关文章

随机推荐

  • 如何对 DRF 中序列化器自定义字段的值进行排序

    我在客户端序列化程序中创建了一个自定义字段 该字段的值是通过复杂的序列化器方法计算的 class ClientsStatsSerializer serializers ModelSerializer Serializer shows tot
  • 计算大数据的相异矩阵

    我正在尝试基于具有数值和分类特征的大数据框架计算相异矩阵 当我运行daisy函数从集群包我收到错误消息 错误 无法分配大小为 X 的向量 就我而言 X 约为 800 GB 知道我该如何处理这个问题吗 此外 如果有人可以帮助我在并行核心中运行
  • Angular PrimeNG p-table:向特定列添加自定义排序功能

    我正在使用 PrimeNG 的 p 表 该表当前在两列上有默认排序 但第三列数据应该按状态排序 高 中 低 现在我需要对此列实现排序 但这必须是基于自定义逻辑的排序 我知道 p table 在表级别提供此功能 但我不确定在列级别 如下所示
  • 为什么包含prototype.js会破坏jquery bbq的功能?

    I have
  • IE < 9 不支持 $("").attr("src",something).load() ?

    http jsfiddle net DerekL qDqZF img attr src http derek1906 site50 net navbar images pic3 png load function body html don
  • 如何将文件复制/替换到 VB.NET 中的文件夹中?

    I used File Copy source target True where source是完整路径名 例如c source txt and target是一个文件夹 其中可能包含同名文件 我想复制source txt到目标文件夹并覆
  • 文件浏览器访问 Chrome 的沙盒文件系统

    我正在编写一个 Google Chrome 应用程序 它使用 HTML5 文件系统 API 在本地存储内容 有什么方法可以使用 Windows 资源管理器访问 Chrome 存储这些文件的目录 还是完全虚拟且无法从应用程序外部访问 我无法通
  • Android解析json树

    我有树形 JSON 结构数据 就像是 result id 1 name test1 id 2 name test12 children id 3 name test123 children id 4 name test123
  • 如何保护 Android 资产文件夹免受黑客攻击

    如何保护 Android 资产文件夹免受黑客攻击 有什么方法可以保护assets文件夹吗 您保存的任何内容Asset仅当您将其复制到内部或外部缓存目录中后才能访问该文件夹 因此 您无法同时保护它免受剥削者的侵害 但是 您可以将此文件夹中的任
  • 核心数据多线程取记录

    我对 CoreData 中的多线程有一个疑问 如果我们使用多线程 我们应该使用单独的 NSManagedObjectContext 来插入新数据或更新 否则我们可以使用父子上下文方法 但我只是创建新的 NSManagedObjectCont
  • string array[] = ""; 是什么意思?是什么意思以及为什么它有效?

    string array 我怎样才能分配一个const char 到一个数组 是不是等同于 string array 这对我来说是有意义的 然而 这仍然不起作用 int array 5 那么它们之间有什么区别 它不起作用int arrays
  • 如何在 PIVOT 中用 0 输出替换(空)值

    我尝试在 PIVOT 函数中将 空 值转换为 0 零 输出 但没有成功 下面是我尝试过的表格和语法 SELECT CLASS AZ CA TX FROM TEMP PIVOT SUM DATA FOR STATE IN AZ CA TX A
  • SQLiteException:不存在这样的表

    我试图在我的 Android 应用程序中创建一个 SQLite 数据库 但我的代码始终抛出 SQLiteException 表示不存在这样的表 我是 SQL 新手 但我认为这意味着我的创建脚本无法正常运行 我的部分代码如下 请指出您发现的任
  • Metro App 如何禁用 Gridview 滚动

    是否可以在 GridView 中禁用滚动 在 GridView 内部尝试一下
  • Flex/Flash可以录屏吗?

    这个问题非常简单 我实际上只想流式传输用户计算机的视频 就像从网络摄像头录制一样 但源来自桌面 想想 截屏工具 我特别想在纯 Flash 中执行此操作 无需下载或附加组件 对于 Google 来说 这将是一个简单的问题 但它对所有 导出到
  • 显式调用时析构函数被调用两次

    我正在用这段代码尝试 C 中的析构函数 include
  • 使用 osmdroid-android-3.0.7 运行时无法访问资源图标

    我正在尝试启动一个简单的地图活动 使用 osmdroid android 3 0 7 库显示地图和几个标记 该代码在旧版本 1 10 下运行 我收到以下错误 02 03 15 14 30 574 E AndroidRuntime 10277
  • 如何给盒子的一部分着色

    我试图显示红色和橙色框的左侧 10 并使背景的其余部分透明 或白色 这可能吗 如果是的话请告诉我该怎么做 谢谢 box background linear gradient to right red orange border 1px bl
  • 如何从 Eclipse 项目中删除 javascript 验证?

    我在我的项目中使用 Eclipse 在搞乱我的 Eclipse 设置时 我打开了 Javascript 支持 现在 eclipse 抱怨 JQuery 库有错误并且不允许我编译该项目 有谁知道如何关闭 javascript 验证吗 我实际上
  • 用Matlab对角展开矩阵

    我有一个矩阵B我想获得一个矩阵C维度的 L k m by L n L and k是输入值 B0 B1 Bk有尺寸m by n 例如 如果我有一个矩阵B 1 1 1 1 1 1 with B0 1 1 B1 1 1 and B2 1 1 以及