Работа с Matlab Version 6.5.0.180913a Release 13 Печать
Добавил(а) microsin   

Недавно я открыл для себя 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);