I have an index vector that I have to change and I want to change the values of them
20 次查看(过去 30 天)
显示 更早的评论
Hi all!
I have a vector:
v = [1 0 0 1 1]
I got another index vector that says me which of these values have to be changed to 1:
index = [1 5 3]
The result should be:
v = [1 0 1 0 1]
The code to do this with a for is this one:
for i=1:Nc_needed
v(index(i)) = 1;
end
I know that there are ways to do it in only one line. Anyone knows how?
0 个评论
采纳的回答
Wayne King
2013-2-18
编辑:Wayne King
2013-2-18
v = [1 0 0 1 1];
idx = [1 5 3];
v(idx) = 1;
But that does not give exactly what you said originally because orignally, elements 1,4,and 5 were already ones, so all the above does is set element 3 to a 1.
Another way
v = zeros(1,5);
v(idx) = 1;
So the way to do it with one line is create a vector of indices that you want to change -- the indices must be greater than or equal to 1 and less than or equal to the length of the vector, then use that vector to assign the value to "data" vector
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!