Обработка внешних данных

Система Mathematica позволяет импортировать данные в любом формате и манипулировать ими, используя разнообразные мощные встроенные функции.

Чтение данных из файла image.dat. Точка с запятой после команды запрещает системе Mathematica выводить данные на экран.

data=ReadList["image.dat",Number,RecordLists->True];

Визуализация данных в виде  графика плотности.

ListDensityPlot[data,Mesh->False,
FrameTicks->None];
wpe56.jpg (7719 bytes)

Вы можете применять к данным любую функцию системы Mathematica.

ListDensityPlot[Exp[Sqrt[data]],Mesh->False,
FrameTicks->None,ColorFunction->Hue];
wpe57.jpg (18825 bytes)

Здесь осуществлен последовательный сдвиг данных вправо.

ListDensityPlot[MapIndexed[RotateRight,data],
Mesh->False,FrameTicks->None,
ColorFunction->Hue];
wpe58.jpg (20209 bytes)

Представление данных в виде контурного графика.

ListContourPlot[data,ContourShading->False,
Contours->6,FrameTicks->None];
wpe59.jpg (23662 bytes)

График плотности данных с сохранивших только несколько Фурье-компонент.

ListDensityPlot[Re[InverseFourier[
MapIndexed[If[Max[#2]<60,#,0]&,Fourier[data],{2}]]],
Mesh->False,FrameTicks->None];
wpe5A.jpg (9621 bytes)

Распределение градаций серого в данных.

ListPlot[Sort[Flatten[data]]];
wpe5B.jpg (4951 bytes)

Представление данных в виде трехмерного графика.

ListPlot3D[data,ColorFunction->Hue,Mesh->False,
ViewPoint->{0.2,-2,5}];
wpe5C.jpg (19014 bytes)

Mathematica может оперировать не только с числами, но и с данными любого типа.

Считывание всех элементов словаря.

data=ReadList["dictionary.dat",String];

Выбор первых 40 слов в словаре.

Take[data,40]
{"a","AAA","AAAS","Aarhus","Aaron","ABA","Ababa",
"aback","abacus","abalone","abandon","abase","abash",
"abate","abbas","abbe","abbey","abbot","Abbott",
 "abbreviate","abc","abdicate","abdomen","abdominal",
 "abduct","Abe","abed","Abel","Abelian","Abelson",
 "Aberdeen","Abernathy","aberrant","aberrate",
 "abet","abetted","abetting","abeyance","abeyant",
 "abhorred"}

Выбор слов, которые являются палиндромами и содержат более двух букв.

Select[data,(#==StringReverse[#]
 && StringLength[#]>2)&]
{"AAA","ABA","ala","AMA","ana","bib","bob","bub","CDC",
"civic","dad","deed","did","DOD","dud","eke","ere",
"eve","ewe","eye","gag","gig","gog","huh","iii",
"level","madam","minim","mum","non","noon","nun","pap",
"PDP","peep","pep","pip","poop","pop","pup","radar",
"refer","rever","rotor","sis","s's","tat","teet",
"tenet","tit","TNT","toot","tot","wow"}

Эта команда находит длины всех слов в словаре.

wordLengths=Map[StringLength,data];

Подсчет общего числа слов равной длины.

Table[Count[wordLengths,i],{i,Max[wordLengths]}]
{26,131,775,2152,3093,3793,3929,3484,2969,1883,1052,
542,260,102,39,15,6,4,0,1,2,1}

График распределения количества слов в словаре по длинам.

ListPlot[%,PlotStyle->PointSize[0.02]];
wpe5D.jpg (4246 bytes)

 

Предыдущая глава

Оглавление

Следующая глава