OCTAVE wzór

0

Witam, mam w skrypcie w Octave napisany takie wzór

 
 b=-2*t;
 c=t.^2;
 d=4*c;
 e=exp(1).^b
 a2=d*e

i error skrypt: operator *: nonconformant arguments (op1 is 1x26, op2 is 1x26)
Proszę o pomoc :)

1

Nie pasują wymiary mnożonych macierzy.

0

Kiedy wypisuje sobie w taki sposób, to widze, że te macierze są tej samej długości, więc skąd ten błąd?

a=(4*(t.^2))
b=exp(1).^(-2*t)
a2=a*b
 
0

Okej, mam.
a2=4.*t.^2.*exp(-2.*t)

Jeszcze jedno pytanie, czy trzeba dawać . przed znakiem mnożenia zawsze?

2

Nie, nie, nie!

Jak chcesz użyć mnożenia macierzowego - używasz operatora *. Mnoży on odpowiednie elementy macierzy ze sobą ze sprawdzeniem warunku o poprawności wymiarów.

Operator .* służy do mnożenia zwykłego. I tak np. dla
A = [1 2 3] B =[1;2;3] C = [1 2 3]

otrzymujesz

AB = 14
A
C - niezgodność wymiarów
A.*C = [1 4 9]

Zastanów się czego chcesz użyć, bo bezmyślne wpisanie kropki to tylko 50 procent szansy na poprawne rozwiązanie.

2

Ja robisz a*b to masz 'standardowe' mnożenie macierzy, a jak zastosujesz operator a.*b to masz tak jakby mnożenie przez skalar, z tym że każdy element macierzy jest wymnażany przez inną wartość (z odpowiadającej komórki macierzy b).
Spójrz tutaj: http://stackoverflow.com/questions/10859917/what-does-operator-dot-mean
I zrób sobie prosty test typu

a=[1 2 3];
b=[1 2 3];
a.*b % [1 4 9]
a*b % nie wykona się ze względu na niepasujące wymiary macierzy
 

EDIT xfin mnie wyprzedził

0

Dzięki za wytłumaczenie, już rozumiem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1