How to use a char variable name as a numeric variable
8 views (last 30 days)
Show older comments
Hello everyone,
I have concatenated images and generated some new variables with this loop:
% mymatrix=768x128
n=size(mymatrix,1)/size(mymatrix,2);
for k = 1:n-1
v = genvarname('IOri',who);
eval([v ' =mymatrix((128*k):(128*k+127),:)']);
...
% And here I need to use the value of my new variable
end
I need to use the values of the variables "v" in every loop called 'IOri','IOri1','IOri2'... to execute other code lines before the loop ends.
I can't use this v variable directly because it contains a char name of the IOrik created, and I can't use this IOrik name because it changes in every loop iteration. I need to get this IOrik value assigned to the v after his creation.
Hope I have explained myself propertly.
Thank you!
0 Comments
Accepted Answer
Mohammad Abouali
on 26 Apr 2015
Edited: Mohammad Abouali
on 26 Apr 2015
Similar question has been asked.
Try the answers on this post:
Generally the approach that you have used is not recommended. Although pretty much on that post the question is answered by pretty much clearing the question. But this is one of those cases that I think everyone agrees that it is ok.
So, if you read that post people have suggested other methods, that does not end up to have different variable names. There are much easier way to handle multiple images.
In your case that you are dealing with multiple images, it is not bad idea to check on imageSet(), especially if you have later versions of MATLAB.
by the way, MATLAB has montage() commands which pretty much concatenates multiple images. Don't rewrite your own image concatenation unless for some other reason you need to.
0 Comments
See Also
Categories
Find more on Whos in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!