how to multiply one array of vector in another ?
1 次查看(过去 30 天)
显示 更早的评论
There are two same size vectors,A and B (1*2000 in size).
for each value of A must be used in equation below for all B values:
equation=A+A^2+B
for example:
A=[1 2 3]
B=[10 20 30]
I want following results:
1+1^2+10 , 1+1^2+20, 1+1^2+30
2+2^2+10 , 2+2^2+20, 2+2^2+30
3+3^2+10 , 3+3^2+20, 3+3^2+30
But, A and B both are 2000 in size, I expect to get 2000*2000 matrix for eqn.
can you please advise?
Thnks
0 个评论
采纳的回答
Walter Roberson
2016-2-10
bsxfun(@(a,b) a + a.^2 + b, A(:), B)
2 个评论
Walter Roberson
2016-2-10
Yes. Just be sure to use .^ instead of ^ . Also be sure that your B is a row vector
bsxfun(@(a,b) a + sqrt(a.^2 - b), A(:), B)
If B is not a row vector then
bsxfun(@(a,b) a + sqrt(a.^2 - b), A(:), B(:).')
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!