Умножение матриц Accord.NET

Как в Accord.NET (C #) умножить матрицу на скаляр? Методы расширения, представленные на страницах Wiki, похоже, не работают. Я пробовал следующие примеры от автора и вики-страницы на GitHub, но ни один из них не работал: http://crsouza.com/2010/08/10/matrix-manipulation-using-accord-net/ введите здесь описание ссылки


person Father Geppeto    schedule 27.07.2017    source источник


Ответы (1)


Согласно их документации вы используете:

C = A.Multiply(B);

Где A - матрица, а B - скаляр.

Итак, чтобы умножить матрицу A на 3, вы должны написать

C = A.Multiply(3);
person Rob Anthony    schedule 27.07.2017
comment
Да, это должно работать, но по какой-то причине методы расширения не работают; это означает, что он не понимает, что двойной [,] является матрицей. Могу я спросить, какую версию мне следует использовать? Я могу заставить это работать в Visual Studio (где я установил accord.net через nuget), но по нескольким причинам мне приходится работать в другом редакторе кода; где я могу только добавить ссылку на нужную dll. Какую DLL использовать? - person Father Geppeto; 27.07.2017
comment
Я просто пробую пример кода со страниц Wiki: double [] v = {4, 5, 6}; двойной [] = v.Multiply (2); // v. * 2: {8, 10, 12} double [] b = v.Divide (2); // v ./ 2: {2, 2.5, 3} double [] c = v.Pow (2); // v. ^ 2: {16, 25, 36} - person Father Geppeto; 27.07.2017
comment
Вы используете Accord.Math; вверху программы? - person Rob Anthony; 27.07.2017
comment
да. но только что понял, что не могу добавить ссылку на новейшую версию dll. Мой редактор кода выдает эту ошибку при попытке загрузить новейшую dll: // Ошибка импорта для 'C: \ Accord.NET-3.6.0-libsonly \ Release \ netstandard2.0 \ Accord.Math.dll': не удалось загрузить файл или сборка 'file: /// C: \ Accord.NET-3.6.0-libsonly \ Release \ netstandard2.0 \ Accord.Math.dll' или одну из его зависимостей. Операция не поддерживается. (Исключение из HRESULT: 0x80131515) - person Father Geppeto; 27.07.2017
comment
Спасибо за ваши ответы; наконец-то выяснилось, что возникла проблема с невозможностью разблокировать папку release zip / rar, загруженную с GitHub; поэтому он работал в Visual Studio, а не в другом редакторе кода. Однако после загрузки новой dll для .NET 4.5 у меня все еще нет доступа ко всем методам расширения! - person Father Geppeto; 27.07.2017
comment
Если вы не устанавливаете проект через NuGet, обязательно добавьте ссылку на сборку Accord.Math.Core.dll - эта сборка содержит методы расширения, которые вы ищете (которые генерируются автоматически и могут занимать много время для компиляции, и по этой причине были реализованы в отдельной сборке, которая почти никогда не перекомпилируется) - person Cesar; 29.07.2017
comment
В худшем случае используйте Elementwise.Multiply (a, b) вместо метода расширения. Если вы все еще боретесь с этой проблемой, откройте новый отчет о проблеме в системе отслеживания проблем проекта, и я займусь расследованием. - person Cesar; 01.08.2017