在 matlab 中使用嵌套 for 循环重新分配向量值?

Reassigning vector values using nested for-loops in matlab?

在 matlab 中我有两个向量,ind 和 ind3。 ind = [1 2 3 4 5] 我想基于 ind 定义 ind3,这样我希望 ind(3)、ind(4) 和 ind(5) 分别为 ind3(1) 和 ind3(2) 和 ind3( 3).所以 ind3 = [ind(3) ind(4) ind(5)] 但出于某种原因我不能这样做。我认为使用嵌套 for 循环会很简单,但实际上并没有用。

for i=3:5
  for n=1:3
    ind3(n,:) = ind(i,:);
  end 
end 

通过逻辑地遍历 for 循环,我知道为什么输出是错误的..但我不知道还有什么方法可以做到这一点?我是不是太蠢了,漏掉了一些非常简单的东西?!

我知道这可能是一个简单的答案,但有人可以帮忙吗??

谢谢。

也许我误解了你的问题,但这就是你想要的吗:

ind3=ind(3:5)

如果你想要 ind3 = [ind(3) ind(4) ind(5)] 并且你想在一个循环中完成它,你只需要一个循环。此外,由于您处理的是向量,因此您只有一个索引变量。

for n=1:3
  ind3(n) = ind(n + 2);
end

首先,您说过您的数组是一维的(它们不是矩阵),并且在您的代码中通过调用 ind3(n,:)ind(i,:) 将它们视为二维数组。

只要这里的一切都是一维的,你只需要一个 for 循环:

for i=3:5
    ind3(i)=ind(i-2);
end

说明:此处i=3,4,5。对于 i=3,您分配 ind3[3]=ind[1],对于 i=4ind3[4]=ind[2],对于 i=5ind3[5]=ind[3]

或者您可以直接调用 ind3=ind(3:5)