Недавно я открыл для себя Matlab. Оказалось, что это продвинутая (и вместе с тем совсем несложная для освоения) система, которая позволяет генерировать и анализировать данные, строить по ним графики. Все это я делал раньше с помощью написания программ на Visual Studio, а теперь с помощью Matlab все стало намного проще.
Matlab основана на консоли, в которую вводятся простые арифметические команды и операторы. Многие операторы по синтаксису совпадают с языком C. Консольные команды можно копировать в буфер обмена, сохранять в текстовые файлы. Кроме того, в файл *.mat можно сохранить всю рабочую среду Matlab - сохраняются как введенные в консоли команды, так и полученные при этом данные.
Дальше приведено несколько простых примеров - как пользоваться Matlab для построения графиков и получения таблиц функций. В массиве x - входные данные для функции, в массиве y - выходные.
1. Экспонента (для затухающих колебаний). Вводим в консоли и жмем Enter:
x=0:1:65535; y=round(255*exp(-0.00006*x)); plot(x,y)
2. Синус для полпериода, у меняется от 0 до 127 и снова к 0. Вводим в консоли и жмем Enter:
x=0:1:127; y=round(127*sin(pi*x/127)); plot(x,y)
3. Как выводить данные в файл:
stream = fopen('my_first_matlab_output.txt','wt');
fprintf(stream,'Hello world!');
fclose(stream);
4. Вывод таблицы синуса в виде C-файла:
size = 128
x=0:1:(size-1); y=round((size-1)*sin(pi*x/(size-1))); plot(x,y)
stream = fopen('sinus.c','wt');
fprintf (stream, 'const char SINUS [%i] = \n{\n', size);
for k=0:size-1
if (0==bitand(k, 7))
fprintf(stream, ' ');
end;
sinus = round((size-1)*sin(pi*k/(size-1)));
fprintf(stream, '%i', sinus);
if (not((k+1)==size))
fprintf(stream, ',');
end;
if (7==bitand(k, 7))
fprintf(stream, '\n');
end;
end
fprintf (stream, '};\n');
fclose(stream);
|