Логика состоит в том, чтобы перебирать ячейки, пока не встретится пустая ячейка.Я взял две переменные для итерации, а именно: i и j . i для строк, а j для столбцов.
Первоначально установите значения i и j как i=1
и j=1
.Теперь в while
цикле итерируйте, увеличивая j и , сохраняя i = 1 как постоянную .
** Сначала попытайтесь скопировать эту ячейку в переменную x .Если эта ячейка пустая, появится сообщение об ошибке.Цель состоит в том, чтобы воспользоваться этой ошибкой, используя операторы try / catch .
Если оператор x = vec(i,j);
записан в блоке try
, то при обнаружении пустой ячейки вместо try
будет выполняться блок catch
, где flag = 0
устанавливает флаг 0, это будетзаставьте цикл while завершиться.
Итак, у нас есть количество столбцов, хранящихся в j
, и цикл while
завершается при обнаружении пустой ячейки.
flag = 1;
i = 1;
j = 1;
while(flag==1) % loop will continue till flag is 1 (or say flag is HIGH)
try
x = vec(i,j); % Try to copy this cell of array vec in x
j = j+1; % if successful to copy then increment value of j else catch block is executed
catch
flag = 0; % Set flag = 0 (or low) to end the while loop
end
end
j = j - 1; % The value of j comes out to be one greater than number of columns hence decrementing by 1
%
% WE HAVE THE NUMBER OF COLUMNS !!
%
% WE WILL PERFORM SAME THING TO GET THE NUMBER OF ROWS BY INCREMENTING i AND
% KEEPING j AS CONSTANT
flag=1;
while(flag==1)
try
x = vec(i,j);
i = i+1;
catch
flag = 0;
end
end
i = i - 1;
% i is the number of rows in the matrix or array
% j is the number of columns in the matrix
dim = [i,j] % vector named dim(or say matrix named dim) contains the required output
dim
содержит размер vec