Operation on matrix_for beginner

3 次查看(过去 30 天)
Momo
Momo 2013-1-25
Dear all, I have a matrix M with 300 rows and 1020 columns, size(M)= 300, 1020; and a vector V= 1 2 3 4 ....1020; size(v)= 1, 1020; I want to divide all the matrix elements with the vector u, u=(1 /(exp(a*V/c)-1) + 1); where V is the row vector. (a and c are constants) I made the code below, but it doesn't work:
% code
u= 1/(exp(a*V(1,:)/c)-1);
[n,m]=size(M);
for i=1:n
NM= M(i,:)*(u(1,:)+1);
end
  1 个评论
Jan
Jan 2013-1-25
"It doesn't work" is an expression which should be explained with more details in a forum.

请先登录,再进行评论。

回答(1 个)

Evgeny Pr
Evgeny Pr 2013-1-25
编辑:Evgeny Pr 2013-1-25
u = 1 ./ (exp(a * V / c) - 1) + 1
Out = bsxfun(@rdivide, M, u)
For example:
M = rand(3, 12)
V = rand(1, 12)
a = 10
c = 20
u = 1 ./ (exp(a * V / c) - 1) + 1
Out = bsxfun(@rdivide, M, u)

类别

Help CenterFile Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by