matlab信号分形,MATLAB IFS 分形算法

这段代码实现了一个IFS(迭代函数系统)的绘制函数IFS_draw,它使用给定的矩阵M和参数p进行迭代计算,生成复杂的图形。通过随机选择和组合M中的线性变换,逐步构造出图形的点集,并用matplotlib进行展示。最后,代码给出了一个具体的M和p值,运行IFS_draw函数展示了对应的图形。
摘要由CSDN通过智能技术生成

function IFS_draw(M,p)

N=30000;

for k=1:length(p);

eval(['a',num2str(k),'=reshape(M(',num2str(k),',:),2,3);']);

end

xy=zeros(2,N);

pp=meshgrid(p);

pp=tril(pp);

pp=sum(pp,2);

for k=1:N-1;

a=rand-pp;

d=find(a<=0);

xy(:,k+1)=eval(['a',num2str(d(1)),'(:,1:2)'])*xy(:,k)+...

eval(['a',num2str(d(1)),'(:,3)']);

end

P=complex(xy(1,:),xy(2,:)); plot(P,'k.', 'MarkerFaceColor','k','markersize',2);

axis equal;

clc;clear;close all; M=[0.06,0,0,0.6,0,0;... 0.04,0,0,-0.5,0,1;... 0.46,-0.34,0.32,0.38,0,0.6;... 0.48,0.17,-0.15,0.42,0,1;... 0.43,-0.26,0.27,0.48,0,1;... 0.42,0.35,-0.36,0.31,0,0.8]; p=[0.1,0.1,0.1,0.23,0.23,0.24]; IFS_draw(M,p);

axis image;

set(gcf,'Color','w');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值