Unable to unclude special characters in the value of a parameter

1 vue (au cours des 30 derniers jours)
Nikhil Jones
Nikhil Jones le 19 Jan 2015
Modifié(e) : per isakson le 19 Jan 2015
Hi Guys,
I am adding a block to a pre loaded simulink system. After adding the block i need to set a specific parameter to this block of the name P and value being a dynamic value. I am using:
p = add_block('uupilib/Get data from PI-point', [par, '/', nam], 'Position', pos);
set_param(p, 'P', ['Pin(', num2str(i), ')']);
However, when i'm trying to change this to:
p = add_block('uupilib/Get data from PI-point', [par, '/', nam], 'Position', pos);
set_param(p, 'P', Pin(i).PITag);
It says "Unexpected MATLAB expression". From what i've discovered it seems that the value Pin(i).PITag contains special characters such as semi colon(;) and spaces( ). When I replace this entire string with a simple 'abc', it works again. Is there a way that i can ask MATLAB to escape these special characters?
This statement is in a loop and i here is the loop counter variable.

Réponses (1)

A Jenkins
A Jenkins le 19 Jan 2015
Modifié(e) : A Jenkins le 19 Jan 2015
It used to be called genvarname().
It looks like in newer versions you are supposed to use matlab.lang.makevalidname().
I suppose you could also use regular expressions to escape only the characters you don't want.
  2 commentaires
Nikhil Jones
Nikhil Jones le 19 Jan 2015
Well, i went through makevalidname and i guess i specifically need the function which replaces special characters with their hexadecimal representations. But I need to decode this string when i'll be reading the block parameter from the other functions. How do i do that?
A Jenkins
A Jenkins le 19 Jan 2015
For the built in examples of how to do the replacement yourself, type doc regexprep.
There are also some people here who enjoy these puzzles for some strange reason. I bet if you put an example up (before and after of what you would like the string to be), someone would write the regular expression for you.

Connectez-vous pour commenter.

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by