using eval with 2 variables
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Alexandra Bilanska
il 24 Gen 2015
Risposto: Alexandra Bilanska
il 25 Gen 2015
Hi I´m having a problem with this code:
L11 = imread('ocidoiris\001l.bmp');
L12 = imread('ocidoiris\001l.bmp');
L13 = imread('ocidoiris\001l.bmp');
L14 = imread('ocidoiris\001l.bmp');
L15 = imread('ocidoiris\001l.bmp');
frameNumber=1;
frame=1;
while frameNumber<2
while frame<6
NAME = sprintf('L%d%d',frameNumber,frame)
I=eval(sprintf('%s',NAME));
%I=eval(sprintf('L%d%d', frameNumber, frame));
I=im2double(I);
all I need is a result L11 L12 L13 L14 L15 but I need variable framenumber and frame for another for loop and for putting pictures that are converted from L11 to RGB, CMY to different folders... You can see, I´m using it here:
baseFileName = sprintf('00%dL%00%d.bmp', frameNumber, frame);
baseFileName2 = sprintf('00%d/L',frameNumber);
fullFileName = fullfile('OCI/',newdir, baseFileName2, baseFileName);
Can you help me with this problem? Thanks
0 Commenti
Risposta accettata
Geoff Hayes
il 24 Gen 2015
Alexandra - why not avoid using eval altogether and just store your images in a 1x5 cell array which you can then iterate over without having to worry about variable names that are dependent upon the frame number and frame. Something like
maxFrame = 5;
maxFrameNumber = 1;
frameData = cell(maxFrameNumber,maxFrame);
frameData{1,1} = imread('ocidoiris\001l.bmp');
frameData{1,2} = imread('ocidoiris\001l.bmp');
frameData{1,3} = imread('ocidoiris\001l.bmp');
frameData{1,4} = imread('ocidoiris\001l.bmp');
frameData{1,5} = imread('ocidoiris\001l.bmp');
atFrame = 1;
atFrameNumber = 1;
while atFrameNumber<=maxFrameNumber
atFrame = 1;
while atFrame<=maxFrame
I = frameData{atFrameNumber,atFrame};
% do your work with I
% save to file
% increment atFrame
atFrame = atFrame + 1;
end
% increment atFrameNumber
atFrameNumber = atFrameNumber + 1;
end
You should still be able to do what you want without the troublesome eval calls (which make debugging problems - like this one - a challenge!).
0 Commenti
Più risposte (1)
Vedere anche
Categorie
Scopri di più su Whos in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!