Unable to unclude special characters in the value of a parameter

1 次查看(过去 30 天)
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.

回答(1 个)

A Jenkins
A Jenkins 2015-1-19
编辑:A Jenkins 2015-1-19
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 个评论
Nikhil Jones
Nikhil Jones 2015-1-19
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 2015-1-19
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Naming Conventions 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by