two for loops problem
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
yunwei hu
am 6 Mär. 2020
Kommentiert: yunwei hu
am 6 Mär. 2020
Hi everyone,
here i want to get pixel intensity out of a 512*512 image.
i wrote two for loops, but in the end in matrix 'intensityValue', l got only the last set of data.
the background is to get the coordinates from x and y. corx and cory are 41*75 matrices.
Thanks !
fluo = imread('fluo0020.tif');
% imshow(fluo);
corx=[];
cory=[];
intensityValue=[];
for i=1:length(coordinate)
A = [coordinate ; coordinate(1,:)] ;
if mod(i, 2) == 1
x= int16(A(:,i));
y= int16(A(:,(i+1)));
corx=[corx,x];
cory=[cory,y];
end
% scatter(x,y);
% line(x,y);
% hold all
end
for ttt=1:length(x)
xc=x(ttt,:);
xy=y(ttt,:);
inten=fluo(xc,yc);
intensityValue =[intensityValue;inten];
end
3 Kommentare
Ameer Hamza
am 6 Mär. 2020
Please check the one-liner in the answer to directly extract the value instead of writing a for loop.
Akzeptierte Antwort
Ameer Hamza
am 6 Mär. 2020
Bearbeitet: Ameer Hamza
am 6 Mär. 2020
You are directly use corx and cory variables to extract values from the matrix instead of the second for loop in your code.
intensityValue = fluo(sub2ind(size(fluo), cory, corx)); % cory is the row number and corx is the column number
7 Kommentare
Ameer Hamza
am 6 Mär. 2020
As you can see, the image dimension is 512x512, and some elements of corx and cory are higher than 512. Therefore it is throwing an error. I guess that there is some issue in the calculation of the corx and cory in the first loop.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements 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!