How to use a char variable name as a numeric variable
조회 수: 7 (최근 30일)
이전 댓글 표시
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
채택된 답변
Mohammad Abouali
2015년 4월 26일
편집: Mohammad Abouali
2015년 4월 26일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Whos에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!