У меня есть эта часть кода в 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,'*')
Когда я запускаю это я получаю ошибку
Неопределенная функция или переменная «х».
Ошибка в read_external_data_and_spline (строка 26) yy = сплайн (x, y, xx); % Хх и уу являются новыми генерироваться значения Naca0012
Я в полной растерянности относительно того, почему это не работает, когда переменная х четко определена в коде, пожалуйста, может кто-то помочь мне с этим
Я предполагаю, что 'n' является' 0', и поэтому цикл, который создает 'x', никогда не запускается, поскольку' 1: 0' дает пустой массив. – Suever
Кроме того, если вы нажмете enter без ввода ввода, 'input' возвращает пустую матрицу. Попытка выполнить итерацию с '1: []' означает, что 'x' никогда не будет инициализироваться, так же как' 1: (любое число меньше 1) '. – excaza
Я не думаю, что это проблема, потому что когда я запускаю его, он показывает 200 в командной консоли, а затем я нажимаю кнопку ввода, чтобы вход был предоставлен. – tribo32