我正在研究一个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)
。这些现在分别存储在变量interpvec1
和interpvec1
中。但是,它们仍然是一个字符串,因此我不能将它与interp1
命令一起使用。
非常感谢!
答案 0 :(得分:0)
实际存储例如X5(:,1)
interpvec1
中的eval
您可以使用eval(['interpvec1 = ' AR_data '(:,1);']);
命令:
{{1}}
我希望这能解决你的问题。但请注意,eval命令通常不是很快,很难读取和调试。