Работа с матрицами в matlab - IT Справочник
Llscompany.ru

IT Справочник
7 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Работа с матрицами в matlab

Математические пакеты (MATLAB).

Работа с матрицами.

Матрица — прямоугольная таблица.

dim A (dimention — размерность) = n*m.

Это означает, что матрица имеет n строк и m столбцов.

    Матрицы:
  • 1*m — матрица-строка;
  • n*1 — матрица-столбец;
  • n*n — квадратная матрица.

Квадратная матрица — важнейший частный случай.

Если элементы главной диагонали равны 1, а остальные равны 0, то такая матрица называется «единичной» (обозначение: E или I).

Пример: определить матрицу для системы MATLAB.

Решение: в системе MATLAB для матриц применяются буквенные обозначения. Множество элементов записывается в квадратных скобках «[]»; элементы одной строки записываются через запятую или через пробел, строки разделяются точкой с запятой «;».

A = [3 2; 1 4];
или
A = [3 2; 1 4]

A = [3, 2; 1, 4];
или
A = [3, 2; 1, 4]

Рассмотрим различия между строками: очевидно, различие между парами строк состоит лишь в использовании запятой или пробела (см. выше). Другой вопрос — использовать ли точку с запятой в конце строки?

Если Вы хотите, чтобы система MatLab отобразила результат операции в рабочем поле, точку с запятой ставить не нужно.

Приведем результаты работы программ:

Без точки с запятой:

С точкой с запятой:

Любое число является матрцей размерностью 1*1.

Действия над матрицами:

  1. A+B — сложение (размерности матиц должны совпадать): A+B = [aij+bij] — складываются соответственнае элементы. Команда MATLAB: A+B;
  2. c*A — умножение на скаляр (с — скаляр, т.е. какое-то число). Команда MATLAB: 2*A;
  3. A*B — умножение матриц (количество столбцов первой матрицы должно быть равно количеству строк второй). Итоговая матрица имеет размерность: * . Команда MATLAB: A*B;

Внимание! A*B не равно(!) B*A.

Для матриц не определена операция деления (X = b/A). Зато есть операция нахождения обратной матрицы (Команда MATLAB: A -1 ). Тогда X = A -1 *b. Команда MATLAB: X = A^(-1).

Умножение матриц (MATLAB).

Узнать, как математически выполняется умножение матриц, можно в соответствующем разделе: Математика/Умножение матриц.

В MATLAB у множение записывается при помощи оператора * или .* (для поэлементного умножения).

Пример: выполнить умножение матриц в системе MATLAB:

    Команды MATLAB:
  1. A = [0 1 -1; 0 2 1];
  2. B = [1 2; -1 0; 0 1];
  3. A*B;

Определитель квадратной матрицы.

Естественно, необходимо знать, как математически вычисляется определитель матриц. Почитайте в соответствующем разделе: Математика/Определитель (детерминант) матрицы.

В MATLAB нахождение определителя записывается при помощи команды det( ).

Пример: найти определитель матрицы A = [0 1; 2 0] с помощью MATLAB.

Обратная матрица.

Обязательно прочитайте, как математически вычисляется обратная матрица, в соответствующем разделе: Математика/Нахождение обратных матриц.

В MATLAB нахождение обратных матриц записывается при помощи команды ^(-1).

Пример: найти обратную матрицу для A = [2 3 1; 2 8 0; 5 6 3] с помощью MATLAB.

    Команды MATLAB:
  1. A = [2 3 1; 2 8 0; 5 6 3];
  2. A^(-1)

Ответ: A -1 =[12 -1.5 -4; -3 0.5 1; -14 1.5 5].

Работа с матрицами в matlab

Многомерные массивы в системе MATLAB

Многомерными называем массивы с размерностью больше двух. Для индексации элементов таких массивов требуется три или более номера, указывающие на положение выбираемого элемента вдоль нескольких направлений упорядочивания.

Дадим наглядную иллюстрацию многомерных массивов на примере массива трёх измерений. Допустим, что ежедневно в течение месяца проводятся измерения одних и тех же величин, причём значения этих величин за день сводятся в прямоугольную таблицу. Тогда в конце месяца имеются тридцать двумерных таблиц. Как упорядочить всю эту совокупность опытных данных? Для этого можно расположить эти матрицы вдоль некоторого направления и пронумеровать их. Это будет уже третье направление упорядочивания данных, так как вдоль первого направления (условно — вертикального) упорядочиваются строки, вдоль второго (горизонтального) — столбцы. В результате третий индекс для доступа к отдельному элементу данных будет равен номеру таблицы вдоль «направления времени«. Получившаяся совокупность упорядоченных данных иллюстрируется следующим рисунком:

Если создать трёхмерный массив A , содержащий так упорядоченные данные, то к индивидуальному данному можно обращаться с помощью трёх индексов. Элемент A(1,2,2) находится в первой строке, втором столбце и во второй матрице. Из рисунка видно, что этот элемент равен 3 .

Теперь расскажем о том, какими операциями можно создать такой массив. Во-первых, это прямое прописывание всех его элементов:

Процесс задания всех элементов такого трёхмерного массива допускает группировку. Сначала можно по-очереди сформировать первую матрицу (любым способом) B1 , затем — вторую матрицу B2 и так далее. После того, как все матрицы будут сформированы, можно для создания трёхмерного массива выполнить следующие тридцать групповых присваиваний (по одной матрице за одно присваивание):

A(. 1) = B1; A(. 2) = B2; …A(. 30) = B30;

Рассмотренный способ ранее рассматривался при создании одномерных и двумерных массивов. Кроме него для таких массивов применялась ещё операция конкатенации. Но эта операция непосредственно для создания массивов высокой размерности неприменима, так как разделители (запятая и точка с запятой) в этой операции работают лишь на разграничения столбцов и строк.

И, наконец, целесообразно применить функцию ones в тех случаях, когда почти все элементы многомерного массива равны единице, после чего прописать индивидуальные значения для немногочисленных неединичных элементов.

Для примера, создадим таким образом трёхмерный массив D с размером 2x3x2:

а потом изменим значения двух элементов:

После этого попросим MATLAB показать содержимое этого массива:

Мы ранее в связи с матрицами (массивами размерности два) уже рассказывали, как MATLAB хранит в памяти элементы массивов, а именно в виде одного большого столбца. Это же справедливо и для многомерных массивов. К примеру, для только что представленного на рисунке трёхмерного массива D сначала идут элементы первого столбца первой матрицы («страницы«), затем — второго столбца первой матрицы, далее — элементы первого столбца второй матрицы, и, наконец, идут последними элементы второго столбца второй матрицы. Обратиться к элементам в такой последовательности можно, указав единственный индекс для трёхмерного массива D . Верны следующие равенства:

Работа с массивами размерности 4 и выше вполне аналогична рассмотренной нами работе с массивами размерности 3.

Как я могу применить функцию к каждой строке / столбцу матрицы в MATLAB?

Вы можете применить функцию к каждому элементу в векторе, сказав, например, v + 1 , или вы можете использовать функцию arrayfun . Как я могу сделать это для каждой строки/столбца матрицы без использования цикла for?

Читать еще:  Delphi 7 components

11 ответов:

многие встроенные операции, такие как sum и prod уже могут работать через строки или столбцы, так что вы можете быть в состоянии рефакторинга функции, которую вы применяете, чтобы воспользоваться этим.

если это не жизнеспособный вариант, один из способов сделать это-собрать строки или столбцы в ячейки с помощью mat2cell или num2cell , а затем использовать cellfun для работы с результирующей ячейкой матрица.

в качестве примера предположим, что вы хотите суммировать столбцы матрицы M . Вы можете сделать это просто с помощью sum :

и вот как бы вы это сделали, используя более сложные num2cell / cellfun :

вы можете захотеть более неясную функцию Matlab bsxfun. Из документации Matlab bsxfun » применяет поэлементную двоичную операцию, заданную функцией handle fun, к массивам A и B с включенным одноэлементным расширением.»

@gnovice указано выше, что sum и другие основные функции уже работают на Первом не одноэлементном измерении (т. е. строки, если есть более одной строки, столбцы, если есть только одна строка, или более высокие измерения, если нижняя размеры все Размер==1). Однако bsxfun работает для любой функции, включая (и особенно) пользовательские функции.

например, предположим, что у вас есть матрица A и вектор строки B. Например, скажем:

вы хотите функцию power_by_col, которая возвращает в векторе C все элементы в A в степень соответствующего столбца B.

из приведенного выше примера, C является матрицей 3×3:

вы могли бы сделать это грубой силой, используя repmat:

или вы можете сделать это классным способом, используя bsxfun, который внутренне заботится о шаге repmat:

таким образом, bsxfun сохраняет некоторые шаги (вам не нужно явно вычислять размеры A). Однако в некоторых моих неофициальных тестах оказывается, что repmat примерно в два раза быстрее, если применяемая функция (например, моя функция мощности, выше) проста. Так что вам нужно выбрать, хотите ли вы простота или скорость.

Я не могу прокомментировать, насколько это эффективно, но вот решение:

дом на Алекс, вот более общая функция:

вот сравнение между двумя функциями:

для полноты / интереса я хотел бы добавить, что matlab имеет функцию, которая позволяет вам работать с данными на строку, а не на элемент. Она называется rowfun (http://www.mathworks.se/help/matlab/ref/rowfun.html), но единственная «проблема» в том, что он работает на таблицы (http://www.mathworks.se/help/matlab/ref/table.html), а не матрицы.

добавляя к развивающемуся характеру ответа на этот вопрос, начиная с r2016b, MATLAB будет неявно расширять одноэлементные измерения, устраняя необходимость bsxfun во многих случаях.

неявное расширение: применение поэлементных операций и функций к массивам с автоматическим расширением размеров длины 1

неявное расширение является обобщением скалярного расширения. С скалярное расширение, скаляр расширяется до того же размера, что и другой массив для облегчения поэлементных операций. С неявным расширением, перечисленные здесь поэлементные операторы и функции могут неявно разверните их входы, чтобы они были одинакового размера, если массивы имеют совместимые размеры. Два массива имеют совместимые размеры, если для каждого размер, размеры размеров входных сигналов или эти же или один из них 1. См. раздел совместимые размеры массива для основных операций и Массив и Матричные операции для получения дополнительной информации.

например, вы можете вычислить среднее значение каждого столбца в матрице A, а затем вычесть вектор средних значений в каждом столбце с — среднее(а).

ранее эта функция была доступна через функцию bsxfun. Теперь рекомендуется заменить большинство применений bsxfun на прямые вызовы функций и операторов, поддерживающих неявное расширение. По сравнению с использованием bsxfun, неявный расширение предлагает более быструю скорость, лучшее использование памяти и улучшенная читаемость кода.

в последних версиях Matlab вы можете использовать структуру данных таблицы в своих интересах. Есть даже операция «rowfun», но мне было проще просто сделать это:

или вот более старый, который у меня был, который не требует таблиц, для более старых версий Matlab.

Принятый ответ, похоже, заключается в том, чтобы сначала преобразовать в ячейки, а затем использовать cellfun для работы над всеми ячейками. Я не знаю конкретного приложения, но в целом я бы подумал, используя bsxfun работать над Матрицей было бы более эффективно. В основном bsxfun применяет операцию элемент за элементом в двух массивах. Так что если вы хотите умножить каждый элемент в n x 1 вектор по каждому элементу в m x 1 вектор, чтобы получить n x m массив, вы могли бы использование:

это даст вам матрицу под названием result где запись (i, j) будет i-м элементом vec1 умножается на j-й элемент vec2 .

можно использовать bsxfun для всех видов встроенных функций, и вы можете объявить свои собственные. В документации есть список многих встроенных функций, но в основном вы можете назвать любую функцию, которая принимает два массива (вектор или матрицу) в качестве аргументов и заставить ее работать.

ни один из вышеперечисленных ответов не сработал «из коробки» для меня, однако, работает следующая функция, полученная путем копирования идей других ответов:

Он принимает функцию f и применяет его к каждому столбцу матрицы M .

наткнулся на этот вопрос / ответ, ища, как вычислить суммы строк матрицы.

Я просто хотел бы добавить, что функция суммы Matlab фактически поддерживает суммирование для данного измерения, т. е. стандартную матрицу с двумя измерениями.

Итак, чтобы вычислить суммы столбцов, сделайте:

и для сумм строк, просто сделать

моя ставка заключается в том, что это быстрее, чем программирование цикла for и преобразование в ячейки 🙂

все это можно найти в справке matlab для SUM.

Matlab

Материал из MachineLearning.

Matlab — язык программирования и система научных и инженерных расчетов, построенная на основе интерпретатора этого языка. Matlab, сокращение от «Matrix Laboratory», предназначен в первую очередь для выполнения алгоритмов, использующих векторы и матрицы.

Язык программирования Matlab (иногда также называется M-code) изначально был разработан с целью упрощения работы с процедурами широко распространенной в 70-80 годы библиотеки алгоритмов линейной алгебры LINPACK. Впоследствии он развился в мощный язык с богатым набором типов данных.

Читать еще:  Ассемблер в c

Оболочка Matlab состоит из командной строки, текстового редактора со встроенным отладчиком и окнами со списком файлов, списком видимых переменных и с историей введенных команд.

Matlab имеет большое число пакетов (toolboxes) — как собственных, так и распространяемых независимыми разработчиками часто на условиях открытого кода. В Matlab включен Simulink — визуальный редактор для моделирования динамических систем.

Содержание

Краткий обзор языка Matlab

Векторы и матрицы

добавть элемент к вектору-столбцу

добавить элемент в вектору-строке

текстовая строка — это вектор

Операции

Типы данных

итератор может быть элементом вектора

или вектором-столбцом матрицы

Условный переход

оператор if использует как логические так и целочисленные переменные; можно использовать операции ‘and(a, b)’, синоним ‘a && b’ и ‘or(a, b)’, синоноим ‘a || b’

но удобнее использовать

Эффективное программирование

Matlab в своих базовых конструкциях сложнее C/C++, поэтому желательно смотреть чужой код с целью выявления удачных приемов.

Пример 1. Примечание: представленные в обзоре времена работы зависят от конкретного компьютера, системы, на которой он работает, загруженности компьютера в момент вычисления примера, числа свободных положительных зарядов на шерсти Вашего кота. Короче, много от чего. Поэтому если при запуске скрипта на Вашем компьютере времена работы не будут совпадать с тем, что вы видете в этом обзоре — не пугайтесь, это нормально и ожидаемо. Главная мысль состоит в том, что правильно написанный код на MATLAB начинает не только быстрее работать, но и (почти всегда) лучше выглядеть и читаться.

Игрушечный пример для иллюстрации способов работы с функциями и векторами в среде MATLAB

Получили вектор, компоненты которого — случайные числа, полученные из равномерного на отрезке [0,1] распределения. Теперь возьмем от каждого его элемента логарифм различными способами.

Способ первый — совсем плохой, самый медленный — в цикле наращивать размер вектора

Результат работы такой:

duration of the very bad method on 10000 elements Elapsed time is 0.286904 seconds.

Способ второй — заметно луче — заранее зарезервировать память под результат применения функции логарифма. Для наглядности увеличим размер вектора еще в 10 раз.

Результаты работы этого кода:

duration time of a bit improved method on 1000000 elements Elapsed time is 0.062692 seconds.

Способ третий — самый правильный и самый быстрый, работает мгновенно — взять функцию логарифма (то, что именно логарифма — не принципиально) сразу от вектора

duration of the best method on 1000000 elements Elapsed time is 0.015231 seconds.

Этот пример еще более игрушечный, чем предыдущий, но все же о нем тоже надо рассказать. MATLAB расшифровывается как matrix laboratiry, поэтому важно помнить, что MATLAB оптимизирован под вычисление произведений матрица на матрицу и матрица на стобец. Поэтому в MATLAB правильно писать операции над матрицами так, как это происходит при решении задач линейной алгебры.

То есть, если нам надо перемножить матрицы A и B, то не надо писать никаких циклов, а нужно просто написать C = A * B

Результат: Matrix multiplication time Elapsed time is 0.612797 seconds.

Здесь надо заметить, что при использовании > метода умножения матриц размеров n * n время получения ответа равно O(n^3). Если предположить, что компьютер делает в секунду в среднем 10^6 операций, то что-то тут не сходится — получится, что компьютер за 0.612797 секунд выполнил 8*10^9 операции. Дело в том, что в MATLAB реализован быстрый алгоритм умножения матриц, в этом алгоритме сложность менее, чем кубическая от размера входных матриц. Поэтому при перемножении матриц важно пользоваться именно записью C = A * B, а не ударяться в написание тройного цикла — тот уж точно выполнит все 8*10^9 операций и хорошо, если за пару суток управится.

Пример 3. Есть еще несколько функций, которые заточены под матричные и векторные операции — это функции repmat и reshape. Остановимся на них подробнее.

Важно. Практика показала, что repmat и reshape в разных версиях MATLAB могут отличаться, поэтому будьте внимательны и осторожны при их использовании.

Пусть мы хотим сделать матрицу, в которой все строки одинаковые. Тут возможны несколько способов реализации. Способ первый — цикл.

Elapsed time is 1.596466 seconds.

Способ второй — использовать функцию repmat()

Elapsed time is 0.311417 seconds.

Пусть теперь нам захотелось продублировать строки матрицы A, то есть вместо каждой строки матрицы написать две таких же строки, одну под другой. Как сделать это эффективно, то есть БЕЗ ЦИКЛОВ? Тут на помощь приходит функция reshape() (еще раз напоминаю про возможные различия в разных версиях).

Дальше ловкость рук и никакого мошенничества =)

Читателю предоставляется возможность разобраться с тем, как получилась матрица B, самостоятельно.

Скорее всего при первом прочтении предыдущий пример про дублирование строк кажется высосанным из пальца, поэтому продолжим и покажем, где в реальной жизни будет очень полезно использовать операции repmat и reshape, позволяющие не использовать циклы явно и ускорять операции в Matlab.

Пример 4, строим усеченную синусоиду, вариант 1

Пример 4, вариант 2

следует избегать циклов там, где можно использовать матричные операции;

пример 5, вариант 1

пример 5, вариант 2

Функции

функции бывают embedded, private, public, inline, см. doc; при написании желательно организовать код так, чтобы функция возвращала корректный результат независимо от того, что было подано в качестве аргумента — скаляр, вектор или матрица

пример, стандартизация вектора

функции могут включать варьируемое число входных и выходных аргументов

выполнение функций как текстовых строк в теле программы

пример, как сделать случайную k-индексную матрицу

инлайн-функции — функции задаваемые в теле программы

Мини-тест

Рекомендации программистам

  1. Matlab прост в освоении. Нет понятий проект, компилятор, библиотека.
  2. Есть командная строка, редактор m-code, path list и help.
  3. Если вы хотите использовать функцию из toolbox просто используйте ее имя в коде.
  4. Коллизий имен не существует. Старое имя исчезает при его перезагрузке.
  5. Функции вызываются по имени согласно path list (см. основное меню). Следите на очередностью в этом списке.
  6. Почитайте help, если вам нужно написать известный алгоритм, возможно он уже написан.
  7. В частности, функции, работающие с множествами: intersect, ismember, issorted, setdiff, setxor, union, unique и очень полезная функция is* находятся в Help navigator -> MATLAB -> Functions — Categorical list.
  8. Wikipedia.org содержит много библиотек для Matlab.
  9. Не нужно избегать сложных алгоритмов. Часто задачи классификации, регрессии, оптимизации решаются в одну строку кода.
  10. Желательно документировать свои функции так:
    • первая строка — назначение функции
    • вторая строка — имя функции и ее входные и выходные аргументы
    • варианты использования функции
    • пример использования функции
  11. Изучите все структуры данных в Matlab, их очень много. В последней версии (на момент написания основной части — R2008a) появилась поддержка работы с классами.
  12. Избегайте циклов, если возможно, используйте операции работы с матрицами.
  13. Имеется возможность подключать функции, написанные на C (в виде специально скомпилированных библиотек).
Читать еще:  Vs code css

Некоммерческие версии

Matlab — коммерческая программа. Существуют некоммерческие варианты, совместимые по базовым конструкциям языка, но не совместимые по библиотечным функциям. Например, Scilab, Euler Math Toolbox и Octave.

События

Несколько раз в год фирма «Софтлайн» проводит семинары, посвященные новым версиям и отдельным подсистемам Matlab. Проводится Всероссийская научная конференция «Проектирование научных и инженерных приложений в среде MATLAB».

умножение матрицы по элементам в Matlab

Итак, у меня есть следующие матрицы:

Я пишу функцию в MATLAB, которая позволит мне умножить вектор и матрицу на элемент, пока количество элементов в векторе соответствует количеству столбцов. В A есть 3 колонки:

B также имеет 3 элемента, так что это должно работать. Я пытаюсь произвести следующий вывод на основе A и B :

Мой код приведен ниже. Кто-нибудь знает что я делаю неправильно?

2 Ответа

MATLAB уже имеет функциональность, чтобы сделать это в функции bsxfun . bsxfun будет принимать две матрицы и дублировать размеры singleton до тех пор, пока матрицы не станут одинакового размера, а затем выполнить двоичную операцию над двумя матрицами. Итак, для вашего примера вы просто сделаете следующее:

Ссылка на MrAzzaman, bsxfun -это способ пойти с этим. Однако, судя по имени вашей функции, это похоже на домашнюю работу, и поэтому давайте придерживаться того, что у вас есть изначально. Таким образом, вам нужно написать только два цикла for . Вы бы использовали второй цикл for для индексирования как вектора, так и столбцов матрицы одновременно. Внешний самый for цикл будет обращаться к строкам матрицы. Кроме того , вы ссылаетесь на A и B , которые являются переменными, которые не существуют в вашем коде. Вы также инициализируете выходную матрицу C , чтобы она всегда была 2 x 3 . Вы хотите, чтобы это был тот же размер, что и mat . Я также удалил вашу проверку длины вектора, потому что вы ничего не делали с результатом.

Обратите особое внимание на то, что я сделал. Самый внешний цикл for обращается к строкам mat , в то время как самый внутренний цикл обращается к столбцам mat , а также к элементам vec . Имейте в виду, что число столбцов mat должно совпадать с числом элементов в vec . Вы, вероятно, должны проверить это в своем коде.

Если вам не нравится использовать подход bsxfun , один из вариантов-взять вектор vec и сделать из него матрицу того же размера, что и mat , сложив вектор vec поверх себя столько раз, сколько у нас есть строк в mat . После этого вы можете сделать element-by-element умножения. Вы можете сделать эту укладку с помощью repmat , который повторяет вектор или матрицы заданное количество раз в любом измерении(Ах) вы хотите. Таким образом, ваша функция будет упрощена до:

Тем не менее, я бы лично пошел с маршрутом bsxfun . bsxfun в основном делает то, что парадигма repmat делает под капотом. Внутренне, это гарантирует, что оба ваших входа имеют одинаковый размер. Если это не так, он реплицирует меньший массив / матрицу до тех пор, пока он не будет иметь тот же размер, что и больший массив / матрица, а затем применяет операцию element-by-element к соответствующим элементам в обеих переменных. bsxfun означает двоичный Singleton EXpansion FUNction, что является причудливым способом сказать именно то, о чем я только что говорил.

Таким образом, ваша функция дополнительно упрощается до:

Похожие вопросы:

Мне нужно сделать умножение матрицы / вектора в Matlab очень больших размеров: A — это 655360 на 5 вещественных матриц, которые не обязательно разрежены, а B — это 655360 на 1 вещественный вектор.

Я пытаюсь выполнить матричное полиномиальное умножение типа: (A_1+A_2*y)*(B_1+B_2*y+B_3*y^2) где y -переменная, все A_i -постоянные матрицы одинакового размера и все B_i -постоянные матрицы.

Я хочу умножить нижнюю треугольную и верхнюю треугольную матрицы. обычное матричное умножение является пустой тратой времени, потому что оно тратит так много времени на умножение нулей . я ищу.

Делает ли Matlab полное умножение Матрицы, когда умножение матрицы задается в качестве аргумента функции trace ? Например, в приведенном ниже коде действительно ли происходит A*B, или столбцы B.

Как бы я сделал умножение матрицы в формате cpp , которое после было бы скомпилировано в файл mex ? Мое обычное умножение матрицы в скрипте Matlab выглядит следующим образом: cMatrix = (1 / r) *.

Я хочу реализовать компонентное умножение матрицы в MATLAB, что можно сделать с помощью numpy.einsum в Python, как показано ниже: import numpy as np M = 2 N = 4 I = 2000 J = 300 A =.

Я ищу способ векторизации комбинированного матричного умножения и поэлементного сложения. Допустим, у меня есть матричная функция M_(x) и векторная функция v_j (x), где — индексы.

Примечание: Я не имею в виду умножение матрицы, как здесь — даже с поворотом транспонированного, обсуждаемого на другом посту. У меня есть эти две матрицы. Матрица A : A > filter_1 filter_1(. 1) = 0 1 0 0 filter_1(. 2) = 1 0 0 1 filter_1(. 3) = 0 0 1 0 Эта.

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector