11 Mar 2010

vmPlayer+easyvmx玩转虚拟机


================================================
17 Mar, 2010 update
另一个方法,去这里下载一个vbs,然后将iso文件拖到这个vbs上,保存生成的vmx文件,然后用vmplayer打开即可.
================================================

想玩虚拟机,VMware可以用来创建虚拟机,但其太过于庞大,vmplayer可以运行已生成的虚拟机,体积也小了近一半,但是却无法创建虚拟机,只能跑已有的虚拟系统.于是就有了easyvmx这个网站,几个简单的选项,点击生成就能创建好虚拟机文件(一般就几十k),下载后用vmplayer打开,挂载iso,就跟vmware一样了.

其网址为:
http://www.easyvmx.com/

7 Mar 2010

矩阵特征值的意义



http://www.cnblogs.com/Tisty/archive/2008/07/22/1248639.html

特征值就是那个矩阵所对应的一元多次方程组的根
特征值表示一个矩阵的向量被拉伸或压缩的程度,例如特征值为1111111111,则表示经过变换以后,向量没有被拉伸,在物理上表示做刚体运动,相当与整体框架做了变动,但内部结构没有变化.
量子力学中,矩阵代表力学量,矩阵的特征向量代表定态波函数,矩阵的特征植代表力学量的某个可能的观测值。
一个向量(或函数)被矩阵相乘,表示对这个向量做了一个线性变换。如果变换后还是这个向量本身乘以一个常数,这个常数就叫特征值。这是特征值的数学涵义;

至于特征值的物理涵义,根据具体情况有不同的解释。比如动力学中的频率,稳定分析中的极限荷载,甚至应力分析中的主应力.
矩阵的特征值要想说清楚还要从线性变换入手,把一个矩阵当作一个线性变换在某一组基下的矩阵,最简单的线性变换就是数乘变换,求特征值的目的就是看看一个线性变换对一些非零向量的作用是否能够相当于一个数乘变换,特征值就是这个数乘变换的变换比,这样的一些非零向量就是特征向量,其实我们更关心的是特征向量,希望能把原先的线性空间分解成一些和特征向量相关的子空间的直和,这样我们的研究就可以分别限定在这些子空间上来进行,这和物理中在研究运动的时候将运动分解成水平方向和垂直方向的做法是一个道理!

用matlab求矩阵最大特征值的特征向量
用函数[V,D]=eig(A)

矩阵D的对角元存储的是A的所有特征值,
而且是从小到大排列的
矩阵V的每一列存储的是相应的特征向量
所以应该是V的最后一个列
就是最大特征值的特征向量

6 Mar 2010

Google的网址缩短


Google最近发布了自己的短网址服务goo.gl,不过他们还没准备好大规模给消费者使用,所以限制只能通过Google Toolbar分享内容时生成这个短网址,或者是通过FeedBurner像twitter输出feed时使用短网址。

今天,Chrome Extension Gallery里出现了一个叫做“goo.gl shortener”的新扩展,可以帮你直接在不具备Google Toolbar的Chrome里生成goo.gl短网址。

下面介绍几个办法:


1,goo.gl书签(直接把下面的链接拖动到你的书签或收藏夹里,以后直接点击即可将当前阅读页面缩成goo.gl短网址):

goo.gl bookmarklet


2,2个提供类似服务的网站


http://gaigalas.net/lab/googl

如果你看这个网页的源代码,会发现它其实发送了一个POST请求到goo.gl/api这个地址,user agent参数设置成toolbar@google.com,这样就可以获得短网址了。相信马上就会有开发者用这个方法,制作一个书签,这样我们在任何浏览器里都可以直接一键生成goo.gl短网址了,当前前提是Google一直开放这个未公开的API。

另一个在线生成goo.gl短网址的网站:

http://jsbin.com/idalu3

matlab中与字符串有关的函数



matlab中与字符串有关的函数

eval(string)
作为一个MATLAB命令求字符串的值
eval(try,catch)
blanks(n)
返回一个n个零或空格的字符串
deblank
去掉字符串中后拖的空格
feval
求由字符串给定的函数值


findstr
从一个字符串内找出字符串
isletter
字母存在时返回真值
isspace
空格字符存在时返回真值
isstr
输入是一个字符串,返回真值
lasterr
返回上一个所产生MATLAB错误的字符串
strcmp
字符串相同,返回真值
strrep
用一个字符串替换另一个字符串
strtok
在一个字符串里找出第一个标记



       





abs


字符串到ASCII转换




dec2hex


十进制数到十六进制字符串转换




fprintf


把格式化的文本写到文件中或显示屏上




hex2dec


十六进制字符串转换成十进制数




hex2num


十六进制字符串转换成IEEE浮点数




int2str


整数转换成字符串




lower


字符串转换成小写




num2str


数字转换成字符串




setstr


ASCII转换成字符串




sprintf


用格式控制,数字转换成字符串




sscanf


用格式控制,字符串转换成数字




str2mat


字符串转换成一个文本矩阵




str2num


字符串转换成数字





upper


字符串转换成大写






4 Mar 2010

matlab保存图像的几个问题



figure最大化
方法一:
h = figure;
set(gcf,'outerposition',get(0,'screensize'));
方法二(by eight):h = figure;
set(gcf,'units','normalized','position',[0,0,1,1]);


============================
保存图像为png
getframe获得的是一个架构struct类型的数据,

其中cdata子域的内容才可以用imwrite内容保存,用F.cdata表示

getframe(gcf) 即get current figure,获得窗口内图像,包含legend、title以及label。如果不添加gcf,默认为gca(get current axis)。

imwrite 可以保存jpg、png等格式图像,gif是7.0添加的,但是好像没办法保存为动画,只能保存第一帧。

与在图像界面直接利用复制,或用file>save as...保存不同的是,imwrite的背景色为窗口实际颜色,默认为灰色(RGB表示为[.7 .7 .7]),若想保留白色背景图,需添加例子中的set gcf color命令。

=====================================================

保存多个图像时,顺序命名图像文件名称需用到 num2str 或 sprintf命令

num2str(kk) 将数字kk保存为字符

sprintf('格式',kk)将kk保存为需要格式的字符,尤其是图像多于10个名称需要前面补0时很好用

Note:保存多个图像时不要乱动电脑、切换窗口,getframe保存当前图像所在位置的屏幕图像,相当于截屏。如果激活其他窗口,可就没法保证截的啥了。

例:(使用ctrl+t取消注释符后运行)

============================

3 Mar 2010

MATLAB GUI - 对话框设计


对话框设计:在图形用户界面程序设计中,对话框是重要的信息显示和获取输入数据的用户界面对象。

1、公共对话框:

公共对话框是利用windows资源的对话框,包括文件打开、文件保存、颜色设置、字体设置、打印设置等。

1) 文件打开对话框:用于打开文件

<
uigetfile

uigetfile(‘FilterSpec’)

uigetfile(‘FilterSpec’,’DialogTitle’)

uigetfile(‘FilterSpec’,’DialogTitle’,x,y)

[fname,pname]=uigetfile(…)

2) 文件保存对话框:用于保存文件

uiputfile

uiputfile(‘InitFile’)

uiputfile(‘InitFile’,’DialogTitle’)

uiputfile(‘InitFile’,’DialogTitle’,x,y)

[fname,pname]=uiputfile(…)

3) 颜色设置对话框:用于图形对象颜色的交互设置

c=uisetcolor(‘h_or_c,’DialogTitle’)

4) 字体设置对话框:用于字体属性的交互式设置

uisetfont

uisetfont(h)

uisetfont(S)

uisetfont(h,’DialogTitle’)

uisetfont(S,’DialogTitle’)

S=uisetfont(…)

5)打印设置对话框:用于打印页面的交互式设置

dlg=pagesetupdlg(fig)

pagedlg

pagedlg(fig)

6) 打印预览对话框:用于对打印页面进行预览

printpreview

printpreview(f)

7) 打印对话框:

printdlg

printdlg(fig)

printdlg(‘-crossplatform’,fig)

printdlg(-‘setup’,fig)



2、MATLAB专用对话框

1)错误信息对话框:用于提示错误信息

errordlg 打开默认的错误信息对话框

errordlg(‘errorstring’) 打开显示’errorstring’信息的错误信息对话框

errordlg(‘errorstring’,’dlgname’) 打开显示’errorstring’信息的错误信息对话框,对话框的标题由‘dlgname’指定

erordlg(‘errorstring’,’dlgname’,’on’) 打开显示’errorstring’信息的错误信息对话框,对话框的标题由‘dlgname’指定. 如果对话框已存在,’on’参数将对话框显示在最前端。

h=errodlg(…) 返回对话框句柄

例:errordlg('输入错误,请重新输入','错误信息')



2) 帮助对话框:用于帮助提示信息

helpdlg 打开默认的帮助对话框



helpdlg(‘helpstring’) 打开显示’errorstring’信息的帮助对话框,

helpdlg(‘helpstring’,’dlgname’) 打开显示’errorstring’信息的帮助对话框, 对话框的标题由‘dlgname’指定



h=helpdlg(…) 返回对话框句柄

例:helpdlg('矩阵尺寸必须相等','在线帮助')



3) 输入对话框:用于输入信息

answer=inputdlg(prompt) 打开输入对话框,prompt为单元数组,用于定义输入数据窗口的个数和显示提示信息,answer为用于存储输入数据的单元数组。

answer=inputdlg(prompt,title) 与上者相同,title确定对话框的标题。

answer=inputdlg(prompt,title,lineNo) 参数lineNo可以是标量、列矢量或m×2阶矩阵,若为标量,表示每个输入窗口的行数均为lineNo;若为列矢量,则每个输入窗口的行数由列矢量 lineNo的每个元素确定;若为矩阵,每个元素对应一个输入窗口,每行的第一列为输入窗口的行数,第二列为输入窗口的宽度。

answer=inputdlg(prompt,title,lineNo,defAns) 参数defans为一个单元数组,存储每个输入数据的默认值,元素个数必须与prompt 所定义的输入窗口数相同,所有元素必须是字符串。

answer=inputdlg(prompt,title,lineNo,defAns,Sesize) 参数resize决定输入对话框的大小能否被调整,可选值为on或off.

例:prompt={'Input Name','Input Age'};

title='Input Name and Age';

lines=[2 1]';

def={'John Smith','35'};

answer=inputdlg(prompt,title,lines,def);



4) 列表选择对话框:用于在多个选项中选择需要的值

[selection,ok]=listdlg(‘Liststring’,S,…) 输出参数selection为一个矢量,存储所选择的列表项的索引号,

输入参数为可选项’Liststring’(单元数组), ’SelectionMode’(’single’或’multiple’, ’ListSize’([wight,height]), ’Name’ (对话框标题)等



5) 信息提示对话框:用于显示提示信息

msgbox(message) 打开信息提示对话框,显示message信息。

msgbox(message,title) title确定对话框标题。

msgbox(message,title,’icon’) icon用于显示图标,可选图标包括:none(无图标)/error/help/warn/custom(用户定义)

msgbox(message,title,’custom’,icondata,iconcmap) 当使用用户定义图标时,icondata为定义图标的图像数据,iconcmap为图像的色彩图。

msgbox(…,’creatmode’) 选择模式creatmode,选项为:modal, non_modal, 和replace。

h=msgbox(…) 返回对话框句柄

6) 问题提示对话框:用于回答问题的多种选择

button=questdlg(‘qstring’) 打开问题提示对话框,有三个按钮,分别为:yes,no和cancel,’questdlg’确定提示信息。

button=questdlg(‘qstring’,’title’) title确定对话框标题。

button=questdlg(‘qstring’’title’,’default’) 当按回车键时,返回default值default 必须是yes,no或cancel 之一。

button=questdlg(‘qstring’,’title’,’str1’,’str2’,’default’) 打开问题提示对话框,有两个按钮,分别由str1和str2确定,’qstdlg’确定提示信息,default必须是str1或str2之一。

button=questdlg(‘qstring’, ’title’,’str1’,’str2’,’str3’,’default’) 打开问题提示对话框,有三个按钮,分别由str1, str2和str3确定,’qstdlg’确定提示信息,default必须是str1, str2或str3之一。



7) 进程条:以图形方式显示运算或处理的进程

h=waitbar(x,’title’) 显示以title为标题的进程条,x为进程条的比例长度,其值必须在0到1之间,h为返回的进程条对象的句柄。

waitbar(x,’title’,’creatcancelbtn’,’button_callback’) 在进程条上使用creatcancelbtn参数创建一个撤销按钮,在进程中按下撤销按钮将调用button_callback函数。

waitbar(…,property_name,property_value,…) 选择其它由prompt_name定义的参数,参数值由prompt_value指定。

例:

h=waitbar(0,'pleas wait...');

for i=1:10000

waitbar(i/10000,h)

end

close(h)