what does this line of code means bwZ = [zeros(1,c+1);[zeros(r,1) bw]]; ??
1 次查看(过去 30 天)
显示 更早的评论
bw=imread('connected.pgm')./255;
%bw=[0 1 0 0 1 1;
% 1 1 1 0 0 0;
% 0 0 1 0 0 1;
% 1 1 0 0 1 1;
% 0 0 0 1 0 0;];
[r,c] = size(bw);
bwZ = [zeros(1,c+1);[zeros(r,1) bw]];
i dont understand this line of code :
bwZ = [zeros(1,c+1);[zeros(r,1) bw]];
0 个评论
回答(1 个)
Walter Roberson
2013-4-2
The line adds a row of zeros along the top, and a column of zeros along the side, of bw.
Another way of expressing it would have been:
bwZ = zeros(r+1, c+1, class(bw));
bwZ(2:end, 2:end) = bw;
3 个评论
Walter Roberson
2013-4-3
It can make the search algorithm easier to write.
For example, if the task were to find the beginning of each "pulse" in a vector of 0 and 1 values, then one way to do that is to search for places in which you have 0 (non-pulse) followed by 1 (pulse). But that search algorithm would fail if the first item in the vector was a 1, as there is no 0 before it. A solution to that is to put a 0 before the vector and then you would not need special code to handle the situation.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Dynamic System Models 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!