Matrix dimensions must agree!!
15 ビュー (過去 30 日間)
古いコメントを表示
Dear all,
I am preparing a matlab simulation to plot the output of an SMI adaptive beamformer algorithm, but i keep getting "matrix dimensions must agree" response, and i'm new to matlab and have not been able to fix this issue.
I am kindly asking for assistance.
Many thanks.
Here is the code:
N = 7;
l = 0:N-1;
fs = 12e6;
f = 1e6;
fi = 1e3;
SNR = 0;
INR = 10;
m = 8;
c = physconst('LightSpeed');
lambda = c/f;
d = lambda/2;
angles = -90:1:90;
theta = ([-pi/2,pi/2]);
phi = ([-pi,pi]);
j= sqrt(-1);
noisePwr = 0.5; % noise power
Ps = noisePwr*SNR; % signal power
A = Ps*10^(SNR/20);
I = 10^(INR/20);
s = A*exp(j*2*pi*f/fs*l);
i = I*exp(j*2*pi*fi/fs*l);
n = sqrt(noisePwr/2)*randn(m,l)+j*randn(m,l);
k = (2*pi)/lambda;
S = s';
a = exp(-j*2*pi*d*(0:m-1)'*sind(angles));%steering matrix
B = ctranspose(a);
input = a*S;
X = input + i + n;
r= (X*ctranspose(X))/N;
R = inv(r);
alpha = inv(B*R*a);
w = alpha*R*a; % weight vector
W = ctranspose(w);
Y = W*X;
plot (Y)
3 件のコメント
Stephen23
2014 年 10 月 14 日
An Aside: don't use i, j and input as variable names, as these are the names of inbuilt functions in MATLAB. You can use which to identify any existing functions, or help for more information on these specific functions.
回答 (3 件)
Ganesh P. Prajapat
2016 年 6 月 11 日
in line 27.. it should be >>input = a.*S as it requires term by term multiplication
0 件のコメント
Image Analyst
2014 年 10 月 13 日
Paste in ALL the red error text, don't snip out small chunk of it like you did. Most likely something is a vector or array that you thought was a single scalar number. Or you're using * to do a matrix multiply instead of .* to do an element-by-element multiply.
1 件のコメント
Image Analyst
2014 年 10 月 14 日
And what is the size of a and of S? Do this:
whos a
whos S
if a is m by n, then S must be n by p - the n's must be the same, that's just basic matrix math.
You might also look at this: http://blogs.mathworks.com/videos/2012/07/03/debugging-in-matlab/ so you can solve these things yourself LOTS faster. Debugging by Answers forum always takes longer.
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!