OCTAVE wzór

GA
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 6 lat
  • Postów:125
0

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

Kopiuj
 
 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 :)

bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
1

Nie pasują wymiary mnożonych macierzy.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
GA
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 6 lat
  • Postów:125
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?

Kopiuj
a=(4*(t.^2))
b=exp(1).^(-2*t)
a2=a*b
 
GA
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 6 lat
  • Postów:125
0

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

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

xfin
  • Rejestracja:prawie 12 lat
  • Ostatnio:10 miesięcy
  • Lokalizacja:Genewa
  • Postów:597
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.

LU
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 7 lat
  • Postów:44
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

Kopiuj
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ł

edytowany 1x, ostatnio: Lukaszmey
GA
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 6 lat
  • Postów:125
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.