Skip to content

Instantly share code, notes, and snippets.

@Digiman
Last active August 29, 2015 14:01
Show Gist options
  • Save Digiman/47c7162b2bee97072aba to your computer and use it in GitHub Desktop.
Save Digiman/47c7162b2bee97072aba to your computer and use it in GitHub Desktop.
Визуализация графика поверхности для задачи анализа ЭМП, распределенного по расчетной области. Применяется в приложении EMFF.
% специальный скрипт для импорта файлов с результатами анализа (разрез
% секции) и визуализации (с анимацией) - построение графика уровня
function VizualizeAnimation(xfile, yfile, lenght, aniFile)
% чтение квадратной матрицы из файла текстового
function [matrix] = ImportMatrix(filename, size)
matrix = zeros(size, size);
file = fopen(filename,'r');
[matrix, size] = fscanf(file,'%f',[size, size]);
fclose(file);
end
% чтение вектора из текстового файла
function [array] = ImportArray(filename, arraySize)
array = zeros(arraySize,1);
file = fopen(filename,'r');
array = fscanf(file,'%f');
fclose(file);
end
function Animate(xfile, yfile, lenght, aniFile)
x = ImportArray(xfile, lenght);
y = ImportArray(yfile, lenght);
% загрузка данных для текущего графика (первый график) в виде матрицы
plot='plot-0.txt';
matrix = ImportMatrix(plot, lenght);
% построение графика и сохранение его для анимации
figure('Renderer','zbuffer');
surf(x,y,matrix)
axis tight
set(gca,'nextplot','replacechildren')
f = getframe;
[im,map] = rgb2ind(f.cdata,256);
im(:,:,1,lenght) = im;
for k = 1:lenght-1
% загрузка данных для текущего графика в виде матрицы
plot=strcat('plot-', int2str(k), '.txt');
matrix = ImportMatrix(plot, lenght);
surf(x,y,matrix)
f = getframe;
im(:,:,1,k) = rgb2ind(f.cdata, map);
%imwrite(f.cdata,strcat('file',int2str(k),'.png'));
end
imwrite(im,map,aniFile,'DelayTime',0,'LoopCount',inf)
end
% main part
Animate(xfile, yfile, lenght, aniFile)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment