Zeroing the start of my vectors with a for loop

1 visualización (últimos 30 días)
Daniel
Daniel el 12 de Nov. de 2015
Editada: Stephen23 el 19 de Jun. de 2019
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

Respuesta aceptada

dpb
dpb el 12 de Nov. de 2015
Editada: dpb el 12 de Nov. de 2015
"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

Más respuestas (1)

Stephen23
Stephen23 el 13 de Nov. de 2015
Editada: Stephen23 el 19 de Jun. de 2019

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by