WedX - журнал о программировании и компьютерных науках

Проблема с Октавой. Не могу распознать матрицу

Пытаюсь собрать скрипт на Octave и получаю такое сообщение:

error: script2: =: nonconformant arguments (op1 is 1x1, op2 is 1x10)
error: called from
    script2 at line 5 column 1

Мой сценарий:

l = 20:29;
m = 30;

for i = 0:9
  a(i + 1) = l / m;
end

Может ли кто-нибудь помочь мне исправить это?

18.12.2020

  • Что такое a? Вы имели в виду l(i + 1) / m? Почему нельзя считать от 1 до 10? 18.12.2020
  • A — матрица, которая должна содержать все значения из l/m. Он считает от 0 до 9 из-за значений от 20 до 29. 18.12.2020
  • Если вы где-то инициализируете a, вы должны показать это. Прямо сейчас ошибка говорит вам, что вы пытаетесь вставить 10 элементов в 1. 18.12.2020

Ответы:


1

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

Когда вы назначаете a(1), a создается как скаляр (или массив 1x1). l / m равно 1x10. Это то, о чем говорит ваше сообщение об ошибке.

Есть несколько обходных путей. Если вы хотите просто накапливать строки матрицы, добавьте второе измерение:

a(i + 1, :) = l / m;

Если вам нужны столбцы:

a(:, i + 1) = l / m;

Проблема с этим подходом заключается в том, что он перераспределяет матрицу на каждой итерации. Рекомендуемый подход - предварительно выделить матрицу a и заполнить ее:

l = 20:29;
m = 30;
a = zeros(10);

for i = 1:10
  a(i + 1, :) = l / m;
end
18.12.2020
  • Спасибо за быстрый ответ, это было очень полезно! 18.12.2020

  • 2

    Поскольку Octave может выполнять матричные операции, вам вообще не нужен цикл for.
    Я бы предпочел написать:

    l = 20:29;
    m = 30;
    a = l / m;
    

    Это намного эффективнее.

    23.01.2021
    Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]