How to use "zeros" to replace for loop?

3 次查看(过去 30 天)
Peony Lai
Peony Lai 2012-4-28
Hello,
I would like to use zeros to replace the for loop, I had try it before but have some errors. How to use zeros to replace for loop?
for a = 300 :2: 303;
for b = 353 :2: 381;
for c = 301 :2: 303;
for d = 354 :2: 381;
frame1(a,b,:) = [0,0,0];
frame1(c,d,:) = [0,0,0];
end
end
end
end
Here is the loop, Thanks.
  2 个评论
Image Analyst
Image Analyst 2012-4-28
You don't have to put semicolons at the end of the "for" lines - it doesn't have any effect.
Jan
Jan 2012-4-28
"frame1(c,d,:) = 0;" is sufficient and faster than "frame1(c,d,:) = [0,0,0];". But of course Walter's solution is ways faster.

请先登录,再进行评论。

回答(2 个)

Walter Roberson
Walter Roberson 2012-4-28
frame1(300:303, 353:381,:) = 0;

Wayne King
Wayne King 2012-4-28
frame1 = zeros(303,381,3);
  3 个评论
Wayne King
Wayne King 2012-4-28
Then I'm not sure what you're asking because my line gives the exact result of your for loop
Walter Roberson
Walter Roberson 2012-4-28
Wayne, assume that frame1 is a previously-initialized array.

请先登录,再进行评论。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by