Arrays have incompatible sizes for this operation

13 visualizzazioni (ultimi 30 giorni)
Hey guys, thanks in advance.
Im trying to apply this equation on matlab
However i Keep getting this error , arrays have incompatible sizes for this operation, I dont understand since there are only constants and when there is a vector I do this .*
This is the code:
D is not getting any error, only H_BAC.
I ve attached the data
n=1;
u=2;
Lp=1;
fc=30e6;
c=3e8;
Vr=250;
D=sqrt(1-((u.^2*doppler_freqSurv.^2*c.^2)/4*Vr.^2*fc.^2));
H_BAC=exp(1*j*2*pi*((R1_matrix-Rm_matrix+n*Lp)/c*fc .*D));

Risposte (1)

Voss
Voss il 12 Lug 2022
R1_matrix and Rm_matrix are 1x400:
load R1_matrix
load Rm_matrix
whos R*
Name Size Bytes Class Attributes R1_matrix 1x400 3200 double Rm_matrix 1x400 3200 double
Therefore, the expression involving subtracting Rm_matrix from R1_matrix gives a 1x400 vector (here stored as the variable temp):
n=1;
u=2;
Lp=1;
fc=30e6;
c=3e8;
Vr=250;
temp = (R1_matrix-Rm_matrix+n*Lp)/c*fc;
whos temp
Name Size Bytes Class Attributes temp 1x400 3200 double
The result of that expression should be multiplied element-wise by D, but D is 1x8000:
load D
whos D
Name Size Bytes Class Attributes D 1x8000 128000 double complex
So you can't do it:
H_BAC=exp(1*j*2*pi*(temp.*D));
Arrays have incompatible sizes for this operation.
Hard to say what the right thing to do is with the information given.
  8 Commenti
Miguel Albuquerque
Miguel Albuquerque il 12 Lug 2022
n=1;
u=2;
D=sqrt(1-((u.^2*doppler_freqSurv.^2*c.^2)/4*Vr.^2*fc.^2));
R1_matrix=[zeros(1,size(doppler_freqSurv,1)-size(R1_matrix,1)) R1_matrix] %padding ahead
This is not changing anything in R1
Miguel Albuquerque
Miguel Albuquerque il 12 Lug 2022
Here it is the best way, thanks anyways
R1_matrix(numel(D))=0;

Accedi per commentare.

Categorie

Scopri di più su Multidimensional Arrays in Help Center e File Exchange

Tag

Prodotti


Release

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by