Длина массива в Matlab - PullRequest
       10

Длина массива в Matlab

0 голосов
/ 09 июня 2018

Как я мог определить количество элементов из массива в Matlab, не используя такие функции, как length (), size () и т. Д.?Спасибо тебе!

1 Ответ

0 голосов
/ 09 июня 2018

Логика состоит в том, чтобы перебирать ячейки, пока не встретится пустая ячейка.Я взял две переменные для итерации, а именно: 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...