Согласно документации issparse
(выделено мое):
TF = issparse(S)
возвращает логическую 1 (true
), если класс хранения из S
равно sparse
и логическому 0 (false
) в противном случае.
То, что вы называете разреженной матрицей в математике, не обязательно является разреженной матрицей в MATLAB.В MATLAB даже матрица со всеми нулями может быть плотной матрицей, а матрица со всеми ненулями может быть разреженной матрицей.Тем не менее, целью разреженных матриц в MATLAB является уменьшение объема требуемой памяти путем хранения только ненулевых элементов и их индексов.Прочитайте документацию ( здесь ), чтобы понять больше о создании разреженных матриц.
Примеры:
Следующее A
матрица разрежена:
A = sparse([1 1 1; 1 1 1; 1 1 1]);
>> issparse(A)
ans =
logical
1
Следующая матрица B
плотная:
B = [0 0 0; 0 0 0; 0 0 0];
>> issparse(B)
ans =
logical
0
Итак, что у вас есть вВаше рабочее пространство представляет собой плотную матрицу.Ваш ожидаемый результат может быть получен путем явного расчета доли, т.е.
if nnz(A)/numel(A) <= 0.5
disp('Matrix-A is Sparse Matrix\n');
else
disp('Matrix-A is Dense Matrix\n');