Я новичок в Octave. У меня две матрицы. Мне нужно сравнить конкретный столбец одной матрицы с другим (моя матрица A содержит более 5 переменных, аналогично матрица B содержит то же самое.), И если элементы в первом столбце матрицы A равны элементам во втором матрица B, то мне нужно использовать третий столбец второй матрицы B для вычисления определенных значений. Я делаю это с октавой, используя цикл for, но это занимает много времени, чтобы выполнить вычисления за один день, я должен сделать это в течение года . Поскольку размер матриц очень велик, пожалуйста, предложите какой-нибудь альтернативный способ, чтобы я мог сократить свое время и вычисления. Заранее спасибо.
Спасибо за ваш быстрый ответ -hfs продолжение той же проблемы, Спасибо, но это будет работать, только если оба элемента в обеих строках равны. Например, мои матрицы такие,
A=[1 2 3;4 5 6;7 8 9;6 9 1]
B=[1 2 4; 4 2 6; 7 5 8;3 8 4]
здесь столбец 1 первого элемента A равен столбцу 1 первого элемента B, даже второй столбец, поэтому я могу взять третий элемент B, но для второго элемента столбца 1 равен в A и B, но второй элемент столбца 2 отличается, здесь он должен искать этот элемент и печатать элемент в третьем столбце, и я делаю это с помощью цикла for, который очень медленный из-за большего размера. В моей реальной проблеме я дал цикл как написано ниже:
for k=1:37651
for j=1:26018
if (s(k,1:2)==l(j,1:2))
z=sin((90-s(k,3))*pi/180) , break ,end
end
end
Мне нужен альтернативный способ сделать это, который должен быть быстрее, чем этот.