Problem z wymnożeniem macierzy

G9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

Witam jestem początkującym programistą. Mam pytanie odnośnie matlaba. Mianowicie chodzi tu o wymnożenie macierzy. Wyrzuca mi błąd "Error using *
Inner matrix dimensions must agree.". Kombinowałem już chyba na wszystkie sposoby, żaden nie zadziałał. Poniżej wrzucam

Kopiuj
>> t=0:2*pi

t =

     0     1     2     3     4     5     6
>> x=t.*(cos(2*pi*t))

x =

     0     1     2     3     4     5     6
>> t^2.*(sin(2*pi*t))
Error using  ^ 
One argument must be a square matrix and the other must be a scalar. Use POWER (.^) for
elementwise power.
lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5027
0

Matlab nie wie, co Masz na myśli tutaj: t^2? Iloczyn skalarny (dot(t, t)), pomnożyć przez siebie każdy element(t.^2)?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Ale co ty chcesz osiągnąć? Przecież błędy są dość jasne:

  1. Error using * Inner matrix dimensions must agree -> wymiary macierzy muszą do siebie pasować żeby dało się je pomnożyć.
  2. One argument must be a square matrix and the other must be a scalar. Use POWER (.^) for elementwise power. -> operator ^ pozwala potęgować macierz kwadratową przez liczbę, a ty masz wektor / macierz prostokątną i potęgujesz przez jakieś 2.*(sin(2*pi*t))
lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5027
0

"Tak. Przy takim Zapisie wyrzuca mi z kolei inny błąd >> (t^2)(sin(2pi*t)) Error using ^ One argument must be a square matrix and the other must be a scalar. Use POWER (.^) for elementwise power".
Znowu Robisz to samo: t^2, W świecie wektorów nie ma mnożenia, chyba, że je Zdefiniujesz. Matlab, dla ułatwienia wykonuje działania "elementwise", albo iloczyn skalarny.

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.