在 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=4
:ind3[4]=ind[2]
,对于 i=5
:ind3[5]=ind[3]
。
或者您可以直接调用 ind3=ind(3:5)
在 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=4
:ind3[4]=ind[2]
,对于 i=5
:ind3[5]=ind[3]
。
或者您可以直接调用 ind3=ind(3:5)