Filter löschen
Filter löschen

what does this line of code means bwZ = [zeros(1,c​+1);[zeros​(r,1) bw]]; ??

3 Ansichten (letzte 30 Tage)
Shahd Ewawi
Shahd Ewawi am 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]];

Antworten (1)

Walter Roberson
Walter Roberson am 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;
  3 Kommentare
Walter Roberson
Walter Roberson am 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Mathematics 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!

Translated by