امروز:پنج شنبه, ۶ اردیبهشت , ۱۴۰۳
زمان انتشار : جمعه, مهر 25ام, 1393 | پرینت مطلب |رضا ابراهیمی| بازديد: 1,145 بار

اسکریپت تکمیلی موجک در متلب

هیچ نرده ای را از جا مکن، مگر آنکه بدانی برای چه ساخته شده است.(شکسپیر)

کدنویسی در نرم افزار مطلب در زمینه علوم طبیعی ومهندسی جهت واکاوی کردن داده ها از استقبال خوبی توسط پژوهشگران ودانشمندان روبه رو شده به گونه ای که کدنویسان این نرم افزار هرساله جدیدترین و پیشرفته ترین نسخه این نرم افزار را طراحی می کنند
استفاده از این نرم افزار وکدنویسی جهت واکاوی کردن فراسنج های اب وهوا شاید هنوز ان گونه که باید در جامعه اب وهواشناسی کشور رخ نداده ومتاسفانه در دانشگاه ها اساتید تمایل چندانی به تشویق دانشجویان جهت یادگیری ان نمی کننددرحالی که شاهد استفاده راحت، سریع و بادقت این نرم افزار واسکریپت نویسی ان جهت واکاوی بسیاری از فراسنج های اب وهوایی توسط برخی از محقان کشور می باشیم که خود گویای نقش مهم این نرم افزار در حوزه علوم جوی است
یکی از پژوهش هایی که اخیرا انجام می گیرد استفاده از انالیز موجک در بررسی لکه های خورشیدی بر روی فراسنج های اب وهوایی است که با اسکریپت نویسی در محیط این نرم افزار با دقت و سرعت می توان به واکاوی داده های اب وهوایی پرداخت
اسکریپت زیر نمایه کامل وتکمیل شده اسکریپت موجک قبلی است که به راحتی می توان ان را جهت واکاوی داده های مدنظر به کار برد به شرطی که با اصول کد نویسی در محیط این نرم افزار اشنایی داشته باشیم
به دوستان توصیه می شود اسکریپت زیر را کپی و با باز کردن متلب در بخش ام فایل paste نمایند.

script for calculaton an analysis wavele     (ebrahimi)

clc;
%Load data
 % load S01;
 % s = S01(1:16);
 is=xlsread('DARAN.xlsx',1, 'C2:C20');
 os1=xlsread('DARAN.xlsx',1, 'D2:D20');
%  os2=xlsread('DARAN.xlsx',1, 'B2:B361');
%  os3=xlsread('DARAN.xlsx',1, 'B2:B361');
   %load leleccum;
  %s = leleccum(1:4096);
  %s=sin(1:.0001:pi);
  lis = length(is);
  los1 = length(os1);
%   los2 = length(os2);
%   los3 = length(os3);

%Plot signal and the 3rd level averaged signal
  [C,L] = wavedec(is,3,'haar');
  bis = waverec(C,L,'haar');
  A3 = wrcoef('a',C,L,'haar',3);
  D1 = wrcoef('d',C,L,'haar',1);
  D2 = wrcoef('d',C,L,'haar',2);
  D3 = wrcoef('d',C,L,'haar',3) ;
inputs = A3';
%inputs = is';
targets = os1';

% Create a Fitting Network
hiddenLayerSize = 10;
net = fitnet(hiddenLayerSize);

% Choose Input and Output Pre/Post-Processing Functions
% For a list of all processing functions type: help nnprocess
net.inputs{1}.processFcns = {'removeconstantrows','mapminmax'};
net.outputs{2}.processFcns = {'removeconstantrows','mapminmax'};

% Setup Division of Data for Training, Validation, Testing
% For a list of all data division functions type: help nndivide
net.divideFcn = 'dividerand';  % Divide data randomly
net.divideMode = 'sample';  % Divide up every sample
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;

% For help on training function 'trainlm' type: help trainlm
% For a list of all training functions type: help nntrain
net.trainFcn = 'trainlm';  % Levenberg-Marquardt

% Choose a Performance Function
% For a list of all performance functions type: help nnperformancet
net.performFcn = 'mse';  % Mean squared error

% Choose Plot Functions
% For a list of all plot functions type: help nnplot
net.plotFcns = {'plotperform','plottrainstate','ploterrhist', ...
  'plotregression', 'plotfit'};

% Train the Network
[net,tr] = train(net,inputs,targets);

% Test the Network
outputs = net(inputs);
errors = gsubtract(targets,outputs);
performance = perform(net,targets,outputs)

% Recalculate Training, Validation and Test Performance
trainTargets = targets .* tr.trainMask{1};
valTargets = targets  .* tr.valMask{1};
testTargets = targets  .* tr.testMask{1};
trainPerformance = perform(net,trainTargets,outputs)
valPerformance = perform(net,valTargets,outputs)
testPerformance = perform(net,testTargets,outputs)

% View the Network
view(net)

% Plots
% Uncomment these lines to enable various plots.
%figure, plotperform(tr)
%figure, plottrainstate(tr)
%figure, plotfit(net,inputs,targets)
%figure, plotregression(targets,outputs)
%figure, ploterrhist(errors)

% is2=xlsread('DARAN.xlsx',1, 'C21:C31');
% [C,L] = wavedec(is2,3,'haar');
%   bis = waverec(C,L,'haar');
%   A3test = wrcoef('a',C,L,'haar',3);
%   D1 = wrcoef('d',C,L,'haar',1);
%   D2 = wrcoef('d',C,L,'haar',2);
%   D3 = wrcoef('d',C,L,'haar',3) ;
% testoutsim=sim(net,A3test')'
% testos1=xlsread('DARAN.xlsx',1, 'D21:D31')
% norm(testoutsim-testos1,2)

testis=xlsread('DARAN.xlsx',1, 'C21:C31');
testoutsim=sim(net,testis')'
testos1=xlsread('DARAN.xlsx',1, 'D21:D31')
norm(testoutsim-testos1,2)


مطالب مرتبط

نویسنده : دوستکامیان Iran (ISLAMIC Republic Of)
تاریخ : دوشنبه, مهر ۲۸ام, ۱۳۹۳
ساعت : ۰۲:۱۰

با سلام و احترام خدمت دوست عزیزم اقای ابراهیم. من یک پیشنهاد داشتم اگر امکانش باشد فرمول مربوطه را برای هر پاراگراف ارایه شود تفهیم بهتر می شود.
درود بر شما

نویسنده : رضا ابراهیمی Iran (ISLAMIC Republic Of)
تاریخ : دوشنبه, مهر ۲۸ام, ۱۳۹۳
ساعت : ۰۹:۰۵

باسلام خدمت جناب اقای دکتر دوستکامیان
سعی میشود مقاله نمونه قرار داده شود تا راحت تر بتوان هم به فرمول ها وهم متغیرهای ان دسترسی داشت
درود

avatar

نویسنده: رضا ابراهیمی

reza ebrahimi Ph.D Climatology yazd University