Скрипт для печати данных в простой текстовый файл - PullRequest
0 голосов
/ 17 мая 2018
x=-1:1; 
y=-2:2;
f(x,y)=1-x^2-y^2

Я хочу напечатать данные в текстовом файле с 3 столбцами: один для x, один для y и один для f(x, y)=1-x^2-y^2.Должно быть 20 точек данных для x и 40 для y.

1 Ответ

0 голосов
/ 17 мая 2018

Предполагая, что вы имеете в виду решение по сетке 21 на 41, вам понадобится следующее:

x=-1:.1:1;
y=-2:.1:2;
[xx,yy] = meshgrid(x,y); % create grid for file
f=1-x.^2-y.'.^2; % use broadcasting to calculate
totaldata = [xx(:) yy(:) f(:)]; % concatenate into single matrix
fid = fopen('mydat.txt','w') ; % open file
fprintf(fid,'%f %f %f \n',totaldata); % write data
fclose(fid); % close file

Я настоятельно рекомендую вам прочитать Учебник MathWork ;не потому, что запись в файл очень проста, а потому что то, что вы там написали, дает вам много ошибокПервый -

f(x,y)=1-x^2-y^2
Error using  ^ 
Inputs must be a scalar and a square matrix.
To compute elementwise POWER, use POWER (.^) instead.

Итак, используя поэлементное POWER, как предлагается:

x=-1:.1:1; 
y=-2:.1:2;
f(x,y)=1-x.^2-y.^2
Matrix dimensions must agree.

Таким образом, требуется больше работы.Это базовые операции индексации и матрицы MATLAB, на которых строится все программное обеспечение.Отсюда и предложение взять собственный учебник или пройти курс обучения в MATLAB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...