inv Matrix must be square
3 次查看(过去 30 天)
显示 更早的评论
how to invert alpha in the following relation.so if alpha values are from 3 to 11 with 50 steps (size of alpha is "1x50"), how can do the following:
r=log(0.001)./(-inv(alpha));
I got the following error: Error using ==> inv Matrix must be square.
1 个评论
Matt J
2014-6-20
It is not clear what operation you're trying to achieve. Since alpha is not square, inv(alpha) is indeed undefined.
回答(1 个)
Andrew
2014-6-20
编辑:Andrew
2014-6-20
Naema, what do you mean by inverse? If you want the element wise inverse such as
1/alpha_ij
then you would use
r=log(0.001)./(-(alpha.^(-1));
If you want alpha flipped, as in you defined alpha as linspace(3,11,50) but actually want linspace(11,3,50) then you can use the fliplr function like this:
r=log(0.001)./(-fliplr(alpha))
If you want the matrix inverse of alpha, well that's impossible to actually find (you can do some funny things with pseudo inverses but they're not real inverses).
Hope one of these is what you are looking for.
Andrew
8 个评论
Andrew
2014-6-21
Hey, so the issue is in the r10 line.
you need to add dots to make it
r10=(1-exp(-fliplr(alpha)*(2*pi())/1310e-9).*l10).*a;
However you still have a problem because the data you have is generating INF values from this code because the exponents are too large. Unfortunately that's not something I can help you with. You probably have a typo in your code or have misinterpreted an equation, so you'll have to check that out.
Sorry for the late response. I got sidetracked by somehting.
Andrew
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!