Asked by Shahd Ewawi
on 2 Apr 2013

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]];

*No products are associated with this question.*

Answer by Walter Roberson
on 2 Apr 2013

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;

Shahd Ewawi
on 3 Apr 2013

Walter Roberson
on 3 Apr 2013

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.

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments