Matlabでこのコードを使用して、エアフォイルプロファイルを取得し、別のプログラムでプロファイルをプロットする際に、より滑らかな曲線を得る。私はこれを実行すると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' を取得します。
reading_external_data_and_spline(行26)のエラー yy =スプライン(x、y、xx); %xxのyyは、私はx変数が明確にコード内で定義されている場合、これは動作していない理由として完全な損失で午前NACA0012
の新しい生成された値であり、誰かがこの
私は 'n'が' 0'なので、 '1'0は空の配列を生成するので、' x'を生成するループは実行されません。 – Suever
さらに、入力を与えずにEnterキーを押すと、 'input'は空の行列を返します。 '1:[]'から反復しようとすると、 '1:(1未満の任意の数)'と同じように 'x'が決して初期化されないことを意味します。 – excaza
私はそれを実行するとコマンドコンソールに200を表示してからEnterを押して入力が提供されているので、それは問題ではないと思う – tribo32