function [ matrixOutput ] = HysteresisMatrixCreation (deltaX, deltaY, dimension, Distribution, Algorithm )
% deltaX = [0.01798621
% 0.015337466
% 0.019129778
% 0.024392314
% 0.031601695
% 0.041161051
% 0.053160832
% 0.067019151
% 0.081132452
% 0.092861989
% 0.099217061
% 0.098158259
% 0.089711653
% 0.075968153
% 0.059968052
% 0.044396554
% 0.0308994
% 0.020095346
% 0.011924592
% 0.00600768
% 0.001884102];
%
% deltaY = [0.01798621
% 0.001884102
% 0.00600768
% 0.011924592
% 0.020095346
% 0.0308994
% 0.044396554
% 0.059968052
% 0.075968153
% 0.089711653
% 0.098158259
% 0.099217061
% 0.092861989
% 0.081132452
% 0.067019151
% 0.053160832
% 0.041161051
% 0.031601695
% 0.024392314
% 0.019129778
% 0.015337466];
%
%
% dimension = 21;
if (Distribution == 2) || (Distribution == 4)
% exponencijalna raspodela
expDiv = exp(1)-2;
% exponencijalna raspodela
end
matrix_markers = zeros(dimension);
matrixInitialyHorizontal = zeros(dimension);
matrixInitialyVertical = zeros(dimension);
matrixOutput = zeros(dimension);
for x=1 : dimension,
for y=1 : dimension,
if y<=x
matrix_markers(x, y)=1;
end
end
end
% initializing horizontal matrix
for x=1 : dimension
for y=1 : dimension
if y<=x
if (y~=1),
if (Distribution == 0)
% konstantna raspodela
r1=deltaY(x);
r1=r1/(x-1);
% konstantna raspodela
elseif (Distribution == 1)
% linearna raspodela
koef1 = (2*(y-1)-1 )/((x-1)^2);
r1= deltaY(x) * koef1;
% linearna raspodela
elseif (Distribution == 2)
% exponencijalna raspodela
koef1 = 1 - exp(-1/(x-1));
koef1 = koef1/expDiv;
r1 = deltaY(x)*exp((y-1)/(x-1))*koef1;
% exponencijalna raspodela
elseif (Distribution == 3)
% inverzna linearna raspodela
koef1 = (2*(x-y+1)-1 )/((x-1)^2);
r1= deltaY(x) * koef1;
% inverzna linearna raspodela
elseif (Distribution == 4)
% inverzna exponencijalna raspodela
koef1 = 1 - exp(-1/(x-1));
koef1 = koef1/expDiv;
%r1 = deltaY(x)*(exp((x-y+1)/(x-1))*koef1 - (2*(x-y+1)-1)/expDiv);
Xpart = (-1)/((x-1)*expDiv);
ExpPart = exp((x-y+1)/(x-1))*koef1;
r1 = deltaY(x)*(ExpPart + Xpart);
% inverzna exponencijalna raspodela
else
r1 = 0;
end
matrixInitialyHorizontal(x, y)=r1;
if (x==1),
matrix_markers(x, y)=2;
end
end;
if y==1 %% prva kolona
%matrixInitialyHorizontal(x, y)=deltaX(dimension-1-x);
matrix_markers(x, y)=2;
if x~=1
matrixInitialyHorizontal(x, y)=0;
else
matrixInitialyHorizontal(x, y)=deltaY(x);
end;
end;
if (y==dimension) %% donji desni ugao
r1=deltaX(dimension);
matrixInitialyHorizontal(x, y)=r1;
matrix_markers(x, y)=2;
end
end
end
end
for x=1 : dimension
for y=1 : dimension
if y<=x
if y~=1
if (Distribution == 0)
%konstantna raspodela
r1=deltaX(y)/(dimension - y+1);
%konstantna raspodela
elseif (Distribution == 1)
%linearna raspodela
koef1 = (2*(dimension-x+1)-1 )/((dimension-y+1)^2);
r1=deltaX(y)*koef1;
%linearna raspodela
elseif (Distribution == 2)
% exponencijalna raspodela
koef1 = 1 - exp(-1/(dimension-y+1));
r1 = deltaX(y)*exp((dimension-x+1)/(dimension-y+1))*koef1/expDiv;
% exponencijalna raspodela
elseif (Distribution == 3)
% inverzna linearna raspodela
koef1 = (2*(x-y+1)-1 )/((dimension-y+1)^2);
r1= deltaX(y) * koef1;
% inverzna linearna raspodela
elseif (Distribution == 4)
% inverzna exponencijalna raspodela
koef1 = 1 - exp(-1/(dimension-y+1));
% r1 = deltaX(y) * exp((x-y+1)/(dimension-y+1))*koef1/expDiv;
r1 = deltaX(y) * (exp((x-y+1)/(dimension-y+1))*koef1 - (1/(dimension-y+1)))/expDiv;
% inverzna exponencijalna raspodela
end
%r1=dimension - y+1;
matrixInitialyVertical(x, y) =r1;
if x==1
matrix_markers(x, y)=2;
end
end
% lower right corner cell
if (x==dimension) && (y==dimension)
r1=deltaX(dimension);
matrixInitialyVertical(x, y)=r1;
matrix_markers(x, y)=2;
end
% first column
if y==1
matrix_markers(x, y)=2;
if x~=1
matrixInitialyVertical(x, y)=0;
else
matrixInitialyVertical(x, y) = deltaY(dimension-x+1);
end
end
end
end
end
matrix_markers(2, 2)=2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (Algorithm == 1)
for x=2:dimension-1
sum=0;
sum2=0;
for y=2:dimension
if matrix_markers(y,x)==1
sum=sum+matrixInitialyHorizontal(y,x);
end
if matrix_markers(y,x)==2
sum2=sum2+matrixInitialyHorizontal(y,x);
end
end
for y=1 : dimension
if matrix_markers(y,x)==1
coef1=deltaX(x);
coef1=coef1-sum2;
coef2=matrixInitialyHorizontal(y,x);
r1=coef1*(coef2/sum);
matrix_markers(y,x)=2;
matrixInitialyHorizontal(y,x)=r1;
end
end
sum=0;
for y=1 : dimension-1
if (matrix_markers(x+1,y)==2)
sum=sum + matrixInitialyHorizontal(x+1,y);
end
end
if (matrix_markers(x+1,x+1)==1)
matrixInitialyHorizontal(x+1,x+1)=deltaY(x+1)-sum;
matrix_markers(x+1,x+1)=2;
end
%-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%-% horizontal
sum=0;
sum2=0;
for y=1 : dimension
yyy=dimension-x+2;
if matrix_markers(yyy, y) == 1
sum=sum+matrixInitialyVertical(yyy, y);
end;
if matrix_markers(yyy, y) == 2
r1=matrixInitialyHorizontal(yyy, y);
sum2=sum2+r1;
end
end
for y=2 : dimension-1
yyy=dimension-x+2;
if matrix_markers(yyy, y)==1
r1=deltaY(yyy);
coef1=r1-sum2;
coef2=matrixInitialyVertical(yyy, y);
r1=coef1*(coef2/sum);
matrix_markers(yyy, y)=2;
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论

























收起资源包目录



















共 17 条
- 1
资源评论


竹山全栈
- 粉丝: 2540
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于C的网络军棋设计说明.doc
- 酒店经营管理思路浅述.doc
- 加气块砌筑劳务分包合同.doc
- 基于人工智能实现简单图像识别基础教程
- 建材企业网站策划方案.doc
- 国家开放大学电大《关系营销》网络课判断题题库及答案.docx
- 互联网大健康专家讲座.pptx
- 股指期货投资报告.doc
- 计算机科学与编程导论课程设计参考题目及要求.doc
- 年级主任岗位职责.doc
- 天然防腐剂研究现状综述.docx
- CO-060成本核算.doc
- 秋季幼儿园园务工作计划3.doc
- 基于单片机的恒温箱温度控制系统毕业论文带pid控制.doc
- 基于EAI模式的银行应用系统集成------.pdf
- 物业公司客户服务部主管岗位职责.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
