using eval with 2 variables
16 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Alexandra Bilanska
am 24 Jan. 2015
Beantwortet: Alexandra Bilanska
am 25 Jan. 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 Kommentare
Akzeptierte Antwort
Geoff Hayes
am 24 Jan. 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 Kommentare
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!