Filter löschen
Filter löschen

For loop for function values

1 Ansicht (letzte 30 Tage)
DP
DP am 4 Jun. 2020
Kommentiert: madhan ravi am 4 Jun. 2020
Hey everyone,
I've been trying to improve my coding lately with for loops, but I'm sturggling to figure this one out.
Here's the original code. BW2_BW refers to an image and the row's all refer to image coordinates.
R1 = imcrop(BW2_BW, [row_1]);
R2 = imcrop(BW2_BW, [row_2]);
R3 = imcrop(BW2_BW, [row_3]);
R4 = imcrop(BW2_BW, [row_4]);
R5 = imcrop(BW2_BW, [row_5]);
stats_BW_R1 = regionprops(R1,'Centroid');
stats_BW_R2 = regionprops(R2,'Centroid');
stats_BW_R3 = regionprops(R3,'Centroid');
stats_BW_R4 = regionprops(R4,'Centroid');
stats_BW_R5 = regionprops(R5,'Centroid');
This is what I'm trying to do:
for k = 1:5
stats_BW_R(k) = regionprops(R(k),'Centroid');
end
I basically want k to replicate values 1:5 to replace what my original code did. What am I doing wrong?
Thanks!
  1 Kommentar
Stephen23
Stephen23 am 4 Jun. 2020
"What am I doing wrong?"
Numbering some variables and then trying to access the variable names dynamically.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

madhan ravi
madhan ravi am 4 Jun. 2020
stats_BW_R = cell(1,5);
for k = 1:5
R = imcrop(BW2_BW, rows{k}); % rows = [row_1,...row_5]
stats_BW_R{k} = regionprops(R,'Centroid');
end
  4 Kommentare
DP
DP am 4 Jun. 2020
I agree
madhan ravi
madhan ravi am 4 Jun. 2020
And make sure to read the comment of Fangjun and Stephens.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Fangjun Jiang
Fangjun Jiang am 4 Jun. 2020
Don't create variables R1, R2, ... R5. Instead, create array R, use R(1), R(2), ... R(5). Then you can run your for-loop.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by