How do I add values to a vector instead of replacing them?
1 次查看(过去 30 天)
显示 更早的评论
Hey I'm trying to combine all IDs for pictures into a vector to use in a function but when I write this loop the values get replaced and i only get the value of the last i.
for i = 1:(length(p))
allIDs = [p(i) ImageIDs(1) ImageIDs(2) ImageIDs(3) ImageIDs(4)];
end
If I write "allIDs(i)" instead I get an error message saying they aren't compatible. How can I write this loop instead? Any help would be appreciated.
0 个评论
采纳的回答
Star Strider
2018-10-19
Use a row and ‘default’ column subscript for allIDs:
allIDs(i,:) = [p(i) ImageIDs(1) ImageIDs(2) ImageIDs(3) ImageIDs(4)];
That should work.
4 个评论
更多回答(2 个)
Guillaume
2018-10-19
All the answers assume you want to create a matrix, I'm not sure that's what you want since you mention a vector. In any case, I see nothing in the code given that warrants a loop, so allIDs as a matrix could be created in one fell swoop with:
allIDs = [p(:), repmat(ImageIDs(1:4), numel(p), 1)];
As said, I'm not convinced that's what's desired but if it's not a better explanation is required, in particular, an explanation of what p and ImageIDs are (size, type).
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!