0
我在Matlab中有一段代码,它应该采用Airfoil轮廓并增加点数,以便在另一个程序中绘制轮廓时,我会获得更平滑的曲线。在Matlab中,尽管明确定义了变量,我仍然得到未定义的变量或函数错误
clear
%reading an external data file
fid = fopen('NACA0015.txt');
a = fscanf(fid,'%g %g',[2 inf]); % It has two rows now.
a = a'; % matrix transpose
n = input('200') %e.g., n=35
for i=1:n
for j=1:2
fprintf('%12.7f',a(i,j)); %a(i,1) is first column, a(i,2) is 2nd col
end
fprintf('\n');
end
fclose(fid);
for i=1:n
x(i)=a(i,1); %x , y vectors
y(i)=a(i,2);
end
% use spline to create more points
xx=0:0.01:1 % e.g., step =0.01 (number of points = (1-0)/0.01=100)
yy = spline(x,y,xx); % xx and yy are new generated values of Naca0012
fprintf('\n print spline values \n');
plot(xx,yy,'ro')
hold on
plot(x,y,'*')
当我运行此我得到的错误
未定义的函数或变量 'X'。
read_external_data_and_line(第26行)中的错误 yy = spline(x,y,xx); %XX和YY是新生成的NACA0012
我完全茫然的价值观,为什么当x变量在代码中明确规定这是不工作,请能有人帮我这
我猜'n'是'0',因此创建'x'的循环永远不会运行,因为'1:0'产生一个空数组。 – Suever
此外,如果您在不提供输入的情况下回车,输入将返回一个空矩阵。尝试从'1:[]'进行迭代,意味着'x'永远不会被初始化,与'1 :(任何小于1的数)'一样。 – excaza
我不认为这是问题所在,因为当我运行它时,它会在命令控制台中显示200,然后我按Enter键以便提供输入 – tribo32