matlab - 如何在 MATLAB 中手动构建 toeplitz 矩阵
问题描述
我需要在 MATLAB 中构建一个名为 的 toeplitz 矩阵H
,其中H
有 size ,来自size256 x 256
的向量。我需要用第-个元素行和第-个元素列填充矩阵,如下所示:h
64 x 1
H
l
H
p
H(l,p) = h(l-p) if 0 <= (l-p) =< 64
. 否则,H(l,p)=0;
我制作的代码如下:
h = randn(64,1);
H = zeros(256,256);
for l= 1:256
for p = 1 : 256
if (l-p <= 64 && l-p >= 0)
H(l,p) = h(l-p);
end
end
end
但是,我认为代码中存在错误,因为它没有给我预期的结果。
如何获得托普利兹矩阵?
解决方案
出现问题l-p=0
,因为h(0)
会调用 的第零个元素h
,并且由于 MATLAB 使用基于 1 的索引,因此会崩溃。只需删除检查中的等号:
h = randn(64,1);
H = zeros(256,256);
for l= 1:256
for p = 1 : 256
if (l-p <= 64 && l-p > 0) % Removed the = sign
H(l,p) = h(l-p);
end
end
end
推荐阅读
- html -
添加后元素消失(引导)元素 - javascript - React JS - onChange 函数被触发两次
- python - Django - AttributeError:模块'os'没有属性'environment'
- python - Quart 是否有任何 Socket.IO 集成?
- c - EasyClang 找不到我的标头,即使它们已安装
- authlib - authlib:未使用配置中的一些 client_kwargs
- python - 无法获取使用 Image.open(requests.get()) 抓取的临时图像文件的文件扩展名
- python-3.x - 使用 request.post 发送 url
- java - 使用 Java 8 和流处理数据 csv
- swift - 使用 AVPlayer 流式传输远程音频文件会在 macOS 上引发一些错误