Zeroing the start of my vectors with a for loop

2 次查看(过去 30 天)
Hello, I have 6 vectors. Gauge1, Gauge2, Gauge3...Gauge6. They do not all start with a 0. So I want to reset each vector with a for loop.
for i=1:6
Gauge(i)=Gauge(i)-Gauge(i)(1);
end
So it should subtract all numbers in the vector with the first number in the vector...
But I get this from matlab ------ ()-indexing must appear last in an index expression. ------
What should I change. Thank you

采纳的回答

dpb
dpb 2015-11-12
编辑:dpb 2015-11-12
"I have 6 vectors. Gauge1, Gauge2, Gauge3..."
Don't name variables this way!!!! See the FAQ for why not: Avoid using the eval function
As you see, you can't address these variables easily as Matlab can't interpret variable names dynamically for ordinary arrays. Instead create a single array gauges of size [N,6]. Then the above operation becomes trivial--
gauges=bsxfun(@minus,gauges,gauges(1,:));
See
doc bsxfun % for details on the singleton expansion to subtract the one row from the rest

更多回答(1 个)

Stephen23
Stephen23 2015-11-13
编辑:Stephen23 2019-6-19

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by