Ненулевые элементы матрицы
Использовать nonzeros для возврата ненулевых элементов в разреженной матрице.
Создайте разреженную матрицу 10 на 10, содержащую несколько ненулевых элементов. Типичное отображение разреженных матриц показывает список ненулевых значений и их местоположения.
A = sparse([1 3 2 1],[1 1 2 3],1:4,10,10)
A = (1,1) 1 (3,1) 2 (2,2) 3 (1,3) 4
Найдите значения ненулевых элементов.
v = nonzeros(A)
v = 4×1
1
2
3
4
Использовать nonzeros, nnz, и find для определения местоположения и подсчета ненулевых элементов матрицы.
Создайте случайную разреженную матрицу 10 на 10 с 7% плотностью ненулевых значений.
A = sprand(10,10,0.07);
Использовать nonzeros для поиска значений ненулевых элементов.
v = nonzeros(A)
v = 7×1
0.9595
0.4218
0.7922
0.8003
0.1419
0.9157
0.6557
Использовать nnz для подсчета числа ненулевых значений.
n = nnz(A)
n = 7
Использовать find для получения индексов и значений ненулевых значений.
[i,j,v] = find(A)
i = 7×1
10
3
9
1
2
7
10
j = 7×1
2
5
6
10
10
10
10
v = 7×1
0.9595
0.4218
0.7922
0.8003
0.1419
0.9157
0.6557
A - Входной массивВходной массив, заданный как вектор, матрица или многомерный массив. A может быть полным или разреженным.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
Поддержка комплексного номера: Да
v - Ненулевые элементыНенулевые элементы, возвращаемые в виде вектора столбца. v возвращается в полное хранилище независимо от того, A полон или разрежен. Элементы в v упорядочены сначала по индексу столбца, а затем по индексу строки.
nonzeros дает v, но не индексы i и j, от [i,j,v] = find(A). Как правило,
length(v) = nnz(A) <= nzmax(A) <= prod(size(A))
Эта функция полностью поддерживает массивы графических процессоров. Дополнительные сведения см. в разделе Запуск функций MATLAB на графическом процессоре (панель инструментов параллельных вычислений).
Эта функция полностью поддерживает распределенные массивы. Дополнительные сведения см. в разделе Запуск функций MATLAB с распределенными массивами (панель инструментов параллельных вычислений).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.