Matrix dimensions must agree

1 view (last 30 days)
Marco
Marco on 6 Jun 2011
[EDIT: 20110606 10:32 CDT - reformat - WDR]
??? Error using ==> times Matrix dimensions must agree. Error in ==> prop_marcuse at 49
ep = exp(-a*dz/2)*ifft((exp(-i*dz*d/2)).*fip);
Error in ==> lt_amprett at 93
E = prop_marcuse(E,ac,b2,b3,ass,n2,Aeff,k0,dz,dt);
??? Error while evaluating uico
hi guys, i'm new in matlab central so hello to everyone. i've a problem in my program. the program it's about propagation in an optical fiber of a signal qpsk modulated. I can't post the functions here because it would be too long. if someone wants to help please contact me and i will give him all the program folder. i'm so close to the solution but i can't understand where i've to correct something. i think it's right but it doesn't seem. i hope someone will answer me. thanks everybody.

Answers (2)

Matt Fig
Matt Fig on 6 Jun 2011
Use .* instead of * when you desire element-by-element multiplication. For example,
x = 1:3
y = 4:6
x.*y
  2 Comments
Marco
Marco on 6 Jun 2011
i think i've done correct.when i have an fft i've tu put the ".*" and when i have ifft i can use "*".right?
Matt Fig
Matt Fig on 6 Jun 2011
When needing to multiply (or divide or exponentiate) arrays element-by-element, you always should use .* and ./ and .^.

Sign in to comment.


Walter Roberson
Walter Roberson on 6 Jun 2011
You probably need
ep = exp(-a.*dz/2).*ifft((exp(-i.*dz.*d/2)).*fip);
In particular I suspect the dot missing between the exp() term and the ifft() term is the key.
  4 Comments
Walter Roberson
Walter Roberson on 6 Jun 2011
The first. But using extra usually does not hurt. Unless you know you are wanting to use matrix multiplication (in a mathematical sense) then you should probably use .*
Walter Roberson
Walter Roberson on 6 Jun 2011
Ah... what is the size of fip, and what is the size of dz and of d ?

Sign in to comment.

Categories

Find more on Install Products in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!