Setting different properties for some line objects stored in the same handle

3 visualizaciones (últimos 30 días)
Let's say I have a handle h1 that contains several line objects, like so:
h1 = plot(1:10, rand(10, 25)); % h1 contains 10 line objects
I want to change the properties of some but not all of the lines, such as making the 3rd and 5th lines wider. How do I do this? Here is what I have tried,
h1([3 5]).LineWidth = 2; % Try to change two of the lines at once
% Expected one output from a curly brace or dot indexing expression, but there were 2 results.
h1({[3 5]}).LineWidth = 2; % Try to change two of the lines at once
% Unable to use a value of type cell as an index.
h1{3}.LineWidth = 2; % Try to change just one line
% Unable to perform assignment because brace indexing is not supported for variables of this type.
What do I need to do differently?

Respuesta aceptada

Fangjun Jiang
Fangjun Jiang el 6 de En. de 2020
set(h1([3,5]),'LineWidth',2)

Más respuestas (1)

Tom Holz
Tom Holz el 6 de En. de 2020
Editada: Tom Holz el 6 de En. de 2020
You can do this with the old-style set() functions, like this:
set(h1([3 5]), 'LineWidth', 2);
Or you can use deal(), like this:
[ h1([3 5]).LineWidth ] = deal(2);
I don't believe there are functional difference between the two.
  3 comentarios
Tom Holz
Tom Holz el 6 de En. de 2020
Editada: Tom Holz el 6 de En. de 2020
Thanks. I tend to avoid deal() in practice because I think the code is slightly more confusing to look at. And I also like how the property name is colored differently when using set() because it's quoted text. That makes it easy to scan code and see property names in a different color.
KAE
KAE el 6 de En. de 2020
Yes, I think I will remember the 'set' syntax better than deal myself. Still, cool to see.

Iniciar sesión para comentar.

Categorías

Más información sobre Entering Commands en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by