Create variable from string

I would like to alter a string in order to access a certain cell of a Matrix. Can I do that by creating a string first? For example
s='{2,1}{1,1}' and then somehow get A{2,1}{1,1}
Actually I would like to create something like a reference. Like
x=A{2,1} x=x{1,1} x=5
and then at the same time change A so I get the following value when calling
>>A{2,1}{1,1}
A{2,1}{1,1} =
5
Usually I would think of using a pointer but that does not seem to be possible in Matlab, or am I mistaken?

1 个评论

Stephen23
Stephen23 2015-6-18
编辑:Stephen23 2015-6-18
Avoid doing this.
MATLAB does not support pointers, and creating some hack-code to improvise them will not be robust.
In particular using dynamic strings like this to define indexing (or variables names) is liable to difficult-to-debug errors. Learn to program using more robust techniques, and your own life will become much easier...

请先登录,再进行评论。

回答(2 个)

eval(['A', s])
and for assignment
eval(['A', s, ' = ', Value_As_string])
Not recommended at all.

1 个评论

Stephen23
Stephen23 2015-6-18
编辑:Stephen23 2019-6-19
@Teresa: note that those words "Not recommended at all" that Walter Roberson wrote are actually very significant.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Startup and Shutdown 的更多信息

产品

提问:

2015-6-18

编辑:

2019-6-19

Community Treasure Hunt

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

Start Hunting!

Translated by