MATLAB: проверка типа таблицы - PullRequest
1 голос
/ 26 октября 2010

Я хочу спросить, как проверить, является ли переменная таблицы 1x8 или 8x1 логического типа? Я знаю, что могу проверить класс массива на логическое:

strcmp(class(a),'logical')

Я знаю, что могу получить размер таблицы следующим образом:

[h w] = size(a);
if(w==1 & h==8 | w==8 & h==1)

Но что если таблица имеет более двух измерений? Как я могу получить количество измерений?

1 Ответ

3 голосов
/ 26 октября 2010

Чтобы получить количество измерений, используйте ndims

numDimensions = ndims(a);

Однако вместо этого вы можете запросить size, чтобы вернуть один выход, который является массивом [sizeX,sizeY,sizeZ,...] и проверьте его длину.Более того, вы можете использовать isvector для проверки, является ли он массивом 1-й степени.

Таким образом, вы можете написать

if isvector(a) && length(a) == 8
disp('it''s a 1x8 or 8x1 array')
end

Наконец, для проверки на логичность, проще написать

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