MATLAB:将已知字符串更改为变量名

时间:2016-05-19 14:34:48

标签: matlab

我正在研究一个Matlab脚本,我遇到了以下问题:

在循环中,我使用strcat创建一个字符串。该字符串实际上是变量的名称。但是,它仍然被归类为字符串,因此我不能在我的while循环中使用它。

因此,我的问题是:如何在MATLAB框架内将字符串更改为变量?

这涉及以下代码:

WingType = strcat(Airfoiltype,TwistType);
AR = Input.Surface.AR;
Sweep =Input.Surface.SweepQC;
AR_vec = [5 6 8 10];


switch WingType


case 'UncamberedUntwisted' %% ----------------------------------------------------------------------------------------------------------------------------
Data_vec =['X5' 'X6' 'X8' 'X10'];
load('UnsweptUncambered.mat')

if Sweep <= 0 || Sweep >= 50

        Inflex_Ratio = 1;



elseif Sweep > 0 && Sweep < 50


                if  sum(ismember(AR_vec,AR)) ==  1;

                    pos = find(ismember(AR_vec,AR)==1);
                    AR_data = Data_vec(pos);
                    interpvec1 = strcat(AR_data,'(:,1)');
                    interpvec2 = strcat(AR_data,'(:,2)');

                    Inflex_Ratio = interp1(interpvec1,interpvec1,Sweep,'linear');

                end

例如:我想创建变量X5(:,1)X5(:,2)。这些现在分别存储在变量interpvec1interpvec1中。但是,它们仍然是一个字符串,因此我不能将它与interp1命令一起使用。

非常感谢!

1 个答案:

答案 0 :(得分:0)

实际存储例如X5(:,1) interpvec1中的eval您可以使用eval(['interpvec1 = ' AR_data '(:,1);']); 命令:

{{1}}

我希望这能解决你的问题。但请注意,eval命令通常不是很快,很难读取和调试。