gpt4 book ai didi

matlab - 从 3d 矩阵中提取几列

转载 作者:太空宇宙 更新时间:2023-11-03 19:49:36 24 4
gpt4 key购买 nike

我目前有一个维度为 N x t x t 的数组 A。我想创建一个二维矩阵,N x t,形式如下:

B = [ A[:,1,1] A[:,2,2],...,A[:,t,t]]

显然,我可以通过 2 种方法将其完整写出(不切实际,因为 t 很大)和循环(可能很慢)。有没有办法不用循环就可以做到这一点。我想如果我这样做的话它会起作用:

B = A[:,[1:end],[1:end]]

但这只是给了我原始矩阵。

最佳答案

基本上,您需要开始考虑如何重组您的矩阵。

来自

A = randn([5 3 3]);

让我们看看

A(:,:)

基本上你想要第 1、5、9 列。考虑一下,知道 t = 3,你想从当前列开始增加 t + 1。公式基本上是:

((1:3)-1)*(3+1)+1 %(or (0:2)*(3+1) + 1)

哪个插入 A 会产生你的解决方案

A(:,((1:3)-1)*(3+1)+1)

在一般格式中,您可以:

A(:,((1:t)-1)*(t+1)+1)

编辑:

Amro 基本上只是让我感到羞耻。思路还是一样的,只是因为 end

变得更易读了

因此使用:

A(:,1:t+1:end)

关于matlab - 从 3d 矩阵中提取几列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17321078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com