image thumbnail

Manipulação de Grande Quantidade de Dados no MATLAB

by

 

Demo files from the the webinar 'Manipulação de Grande Quantidade de Dados no MATLAB'

largedataset_script.m
%% Duas sessoes do MATLAB abertas / shield
% MATLAB 1 (Maior matriz possiveis: 1.0Gb)
% Desktop: matlab.exe -shield medium
memory
% MATLAB 2 (Maior matriz possiveis: 0.9Gb)
% Desktop: matlab.exe -shield none
memory
% Command window: matlab -shield minimum
x = rand(4000);
memory
%%  Watch_malloc
clear all
clc
watch_malloc
x = rand(3000);
y = rand(3000);
clear all
clear x
clear y
x = rand(3000);
y = x;
y(1) = 0;
z = y*y;
x = 2*x;
a = 2*x;
%% Memory overhead
edit memory_model\overhead.m
%% Growing by index and Pre-allocation
tic; x = growing_by_index(100000); toc
tic; x = pre_allocation(100000); toc
%% Precision (39minutos)
edit downsizing\precison.m
%% ASCII File
% Le todos os dados
fid = fopen('dados.txt');
C = textscan(fid, '%s %s %f32 %d8 %u %f %f %s %f','HeaderLines',3);
fclose(fid);
% Elimina a palavra 'Nivel'
fid = fopen('dados.txt');
C = textscan(fid, '%s Nivel%u8 %f32 %d8 %u %f %f %s %f','HeaderLines',3)
fclose(fid);
% S l a primeira coluna e ignora o resto da linha
fid = fopen('dados.txt');
Datas = textscan(fid, '%s %*[^\n]','HeaderLines',3);
fclose(fid);
%% Binary file
dados = rand(5000,1);
fid = fopen('dados_binarios.dat','w');
fwrite(fid, dados, 'double');
fclose(fid);
m = memmapfile('dados_binarios.dat',         ...
'Offset', 0,        ...
'Format', 'double',    ...
'Writable', true);
m
%% Column process for loops
edit devectorize
%% Plot
watch_malloc
x = rand(125e4,1); 
plot(x)
xi = int8(10*x);
whos x xi
plot(xi)
%% Parallel Computing Tb
a = rand(100);  % 8Kb
pmode start local 2
a = codistributed(rand(100));
whos

Contact us