Category Archives: MATLAB

Matlab Toolbox: Fuzzy Clustering and Data Analysis Toolbox

I googled “fuzzy clustering and matlab” and wanted to find some tools for data clustering today. I came across a very good MATLAB toolbox at http://www.fmt.vein.hu/softcomp/fclusttoolbox/. In the web page, you can find source code and a detailed documentation that … Continue reading

Share
Posted in Data analysis, MATLAB | Tagged , , , | Leave a comment

Graph Digitization in MATLAB

Sometimes we need digitize graphs from scientific papers because we can not get the original data. The digitized data can be used to fit model or redraw graphs. How can we achieve the goal? At the beginning I think we … Continue reading

Share
Posted in Graphing, MATLAB | Tagged , , , , , , , | 3 Comments

Build a boolean network in MATLAB

To build a boolean network is pretty simple in MATLAB. It does not need ODE function to solve the problem. Just put the rate of change logic equations in a ordinary equation, to calculate several steps (step size always 1). … Continue reading

Share
Posted in MATLAB | Tagged , | Leave a comment

Concept of using multiple PCs within LAN for parallel computing and its implementation in MATLAB

我在使用MATLAB来实现一个动态模拟模型时遇到了一个令我十分头疼的事,那就是模型的运行时间过长,如果使用优化软件包搜寻最优参数,只用单机需要很长时间才能完成。开始的时候我的模拟运行一遍需要近3个小时,如果搜寻优化参数,这估计需要几个月甚至几年的时间。这种情况是不能接受的,我只有另外寻找其他途径。 优化模型 使用MATLAB提供的Profiler工具,我找到了模型中最消耗时间的部分,对其进行优化,得到了十分满意的效果。主要对如下方面进行了优化: 减少函数的调用,不仅仅指自己写的函数,对内建函数的调用也要尽可能地减少; 不用或少用全局变量以及结构变量; 预先申请数据空间,减少动态改变数组大小的语句; 将所有调用函数集中到一个函数中,使用mcc命令将其编译成mex格式的可执行文件; 尽可能将循环化为向量,然后进行矩阵运算; 并行计算 MATLAB并没有提供并行计算的功能,但是我们可以想出办法来实现并行计算。在我办公室的局域网中有一个11台计算机的集合体,只要有一种办法让每个计算机干一小部分任务,从而可以实现并行计算。我的实现办法十分简单,在主机(master)上就是将任务分割成几个等分,分别将他们写入到文件中,在奴役(slave)机上读取这些文件,并进行计算。奴役机一直在监视主机分配的任务,直到主机发出任务完成的命令。 数据分发 在分发数据或读取结果时可能会出现某种冲突,比如这里主程序刚建立文件,奴役程序就开始读取数据,结果是可想而知的,程序会中断运行。为了解决这个问题,可以采用如下的策略,先在盘上写一个小文件,然后再写数据文件,等数据文件写完后,再删除这个小文件。在另一个程序中,先判断数据文件是否就绪,如果就绪,再判断那个作为指标的小文件是否存在,如果不存在,说明程序可以安全度取数据了。使用这种策略,将不会发生任何冲突。下面是两个示例程序,一个是主程序,一个奴役程序。 MASTER.M function [dap] = master(x,xdata,nummachines) if nargin < 3 nummachines = 6; end for i=2:nummachines save(['slave' num2str(i) 'ok.txt'],'i','-ascii'); end switch nummachines case 1 slave1data = xdata; case 4 … Continue reading

Share
Posted in MATLAB | Tagged , , , , , , , | Leave a comment

Downhill Simplex Method in Multidimensions

In this article, C program of the downhill simplex method in Numeric Recipe in C – the Art if Scientific computing (Second Edition, Press, W.H., Teukolsky, S.A., Vetterling, W.T., Flannery, B.P., 1992, Cambridge University Press, New York) was translated into … Continue reading

Share
Posted in Data analysis, MATLAB | Tagged , , , | Leave a comment