Unable to unclude special characters in the value of a parameter

4 views (last 30 days)
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.

Answers (1)

A Jenkins
A Jenkins on 19 Jan 2015
Edited: A Jenkins on 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 Comments
A Jenkins
A Jenkins on 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.

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!

Translated by