Help with linspace and indexing
8 次查看(过去 30 天)
显示 更早的评论
I have a vector of values where "roughly" the middle value is close to zero. It can be positive or negative. (these represent real locations on an fluorescent image of a regular pitched object array)
xactual=
-30.6552
-23.6552
-17.6552
-11.6552
-5.6552
0.3448
6.3448
12.3448
18.3448
24.3448
30.3448
36.3448
I want to be able to subtract this offset (0.34 in this case) off all of the values, so I tried:
xactualZero=min(abs(xactual(:)))
xactual=xactual-xactualZero;
However this doesnt handle the sign, as I said this value closest to zero can be positive or negative.
Also I want to find the index of this value (thats closest to zero) and create a linspace vector of equal length, starting with zero in the same location, but increment positively and negatively by 6 units. i.e
xreal=
-30
-24
-18
-12
-6
0
6
12
18
24
30
36
I am trying to calculate optical distortion and have the "actual locations" of my objects that I know are 6 pixels seperated I can work out the distortion as
dist=xreal-xactual.
0 个评论
采纳的回答
Jan
2015-11-3
编辑:Jan
2015-11-3
[dummy, index] = min(abs(xactual(:)))
xactualZero = xactual(index);
xactual = xactual - xactualZero;
If your problem is almost solved by the min function, reading the documentation of this command will help you. If it is not solved by a specific option of the command, look at the "See also" line on the bottom. This is extremely useful.
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!