Borrar filtros
Borrar filtros

multiplication of matrices with different sizes

5 visualizaciones (últimos 30 días)
Sara
Sara el 14 de Dic. de 2022
Comentada: Sara el 14 de Dic. de 2022
i have to calculate the SINR ratio for zero forcing precoding in cell free mmimo i tried to reperesent the part with red mark under it like that ( pilot contamination part)
M=20
K=10
G=M*K matrix
betta=M*K matrix
C=conj(G);
o=G.';
p= zeros(M,1);
for m=1:M
p(m)=(BETAA(m).*(1-((G(m)/BETAA(m)))) ;
end
PC=(abs(p)).^2;
s=zeros(M,1) ;
for m=1:M
s(m)=(inv(C*o).*o.*PC.*inv(C.*o).*C); % thefinal vector
end
etta = m*1 vector
the code give error on s(m) that said 'matrix dimensions must agree'
what is the wrong with this code ? did i repesent these matrix right ? and how can i do multiplication of matrices with different sizes

Respuestas (1)

VBBV
VBBV el 14 de Dic. de 2022
Use a cell array for s
s{m}=(inv(C*o).*o.*PC.*inv(C.*o).*C);
  4 comentarios
VBBV
VBBV el 14 de Dic. de 2022
You can follow this approach
M=diag(ones(20,1));
K=20;
G=M*K;
betta=M*K;
C=conj(G);
o=G.';
p=zeros(length(M),length(M));
for m=1:length(M)
p(m,m)=betta(m,m)*(1--G(m,m)/betta(m,m)) ;
end
PC=(sum(p)).^2;
% % s=zeros(M,1) ;
for m=1:length(M)
s{m}=(inv(C*o).*o.*PC(m).*inv(C.*o).*C); % thefinal vector
end
s.'
ans = 20×1 cell array
{20×20 double} {20×20 double} {20×20 double} {20×20 double} {20×20 double} {20×20 double} {20×20 double} {20×20 double} {20×20 double} {20×20 double} {20×20 double} {20×20 double} {20×20 double} {20×20 double} {20×20 double} {20×20 double}
Sara
Sara el 14 de Dic. de 2022
Thanks for your efforts i will try this

Iniciar sesión para comentar.

Categorías

Más información sobre Analog Input and Output en Help Center y File Exchange.

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by