matlab安裝和運(yùn)行等問題解決方法_第1頁
matlab安裝和運(yùn)行等問題解決方法_第2頁
matlab安裝和運(yùn)行等問題解決方法_第3頁
matlab安裝和運(yùn)行等問題解決方法_第4頁
matlab安裝和運(yùn)行等問題解決方法_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

matlab安裝、運(yùn)行與其他問題集錦

Q1:matlab有沒有監(jiān)視內(nèi)存的方法?

A:用函數(shù)whos。

Q2:如何解決matlab7.0命令窗口跳出一大堆java錯(cuò)誤...

A:換matlab7的sp2。

Q3:自從安裝matlab,一開機(jī)就在進(jìn)程里有matlab。

能不能開機(jī)的時(shí)候進(jìn)程就不運(yùn)行matlab?

A:開始-->控制面板-->管理工具-->服務(wù)

把MATLABServer的屬性改成“手動(dòng)”就行了。

Q4:退出matlab7程序運(yùn)行的快捷鍵。

A:ctrl+q

Q5:matlab7遠(yuǎn)程控制是否有限制?

A:不能遠(yuǎn)程控制,不過你可以先在你的remote機(jī)器上打開,然后就可以用了。

Q6:Matlab占用資源太多怎么辦?

A:用matlab-nojvm啟動(dòng)(如果不需要圖形界面)。

Q7:怎樣給matlab添加新的toolbox?

A:在matlab的文件菜單里邊添加路徑,選setpath。

Q8:請(qǐng)問matlab有沒有命令可以調(diào)出歷史輸入???

A:commandhistory窗口。

Q9:matlab7.0不能在64位的cpu下運(yùn)行?

A:matlab應(yīng)該是依賴于自己的虛擬機(jī)的

但是好像這個(gè)虛擬機(jī)是在IA32里面作出來的,所以,應(yīng)該找個(gè)帶64位的

java虛擬機(jī)替換原來的,不過不一定能行orso,記不清了)

Q10:matlab有沒有注釋一段的功能?

A:選中一段代碼,ctrlr就是區(qū)段注釋

選中一段代碼,ctrlt取消區(qū)段注釋

Q11:今有WINDOWS版MATLAB7,啟動(dòng)時(shí)只出現(xiàn)版權(quán)畫面,然后進(jìn)程結(jié)束。

A:

用matlab-nojvm可以啟動(dòng),但是報(bào)了OpenGL錯(cuò)誤的信息,估計(jì)是顯卡比較

差或驅(qū)動(dòng)程序不好。在顯示屬性里關(guān)閉硬件加速即可。

matlab常用命令參考

1、學(xué)會(huì)用help和doc函數(shù)。

2、輸入輸出文件:save/load

Q2:請(qǐng)問怎么把MATLAB里用程序?qū)崿F(xiàn)的動(dòng)畫導(dǎo)入到Powerpoint演示呢?

A:matlab有avifile,getframe,addframe,pause等做avi動(dòng)畫的函數(shù)的。

做好的avi放在ppt,如果要暫停之類的功能,是ppt或者播放器的事情了。

matlab提供了com組件來和其它應(yīng)用程序進(jìn)行通信在ppt里寫個(gè)vba調(diào)用matlab。

細(xì)節(jié)可以在help文檔里查找vba和com關(guān)鍵字

Q3:我們可以用subplot畫出兩個(gè)不同的曲面圖,那怎么樣才能使得這兩個(gè)曲面圖

各自用到不同的顏色對(duì)照表呢?如果畫完一個(gè)然后用不同的colormap,

兩張圖會(huì)變成一樣的。

A:如果是曲面圖的話atch對(duì)象或者surface對(duì)象自己有顏色映射表的。

其實(shí)說白了,colormap也是對(duì)顏色的索引罷了,例如surface對(duì)象而言,也就是第

三位的顏色表。支持的形式有兩種:索引以及RGB直接表示.采用第二種就可以解決

這個(gè)問題.畢竟對(duì)于figure對(duì)象而言,colormap沒有太大的意義.

以下附實(shí)現(xiàn)的方法,以供討論:(見合集2005年之38)

原理是通過改變caxis的值。

Q4:雖然用subplot可以在一個(gè)窗口中顯示多幅圖像,但是每幅圖像之間有較大間距。

現(xiàn)在想讓多幅圖像緊挨著顯示(比如說2行兩列共4個(gè)圖像),該如何實(shí)現(xiàn)?

A:subplot('Position',[leftbottomwidthheight])

或者axes('PropertyName',PropertyValue,...)

Q5:matlab怎么畫球?

A:sphere函數(shù)。

Q6:matlab由圖上直接取某個(gè)值命令?

A:ginput。

Q7:請(qǐng)問用什么命令可以讓figure窗口中的圖形輸出到指定的文件中?

圖片數(shù)量很大。

A:print和matlab的notebook功能

Q8:怎么能讓一個(gè)plot命令執(zhí)行完了以后重新開一個(gè)chartwindow畫下一個(gè)圖?

A:figure。

Q9:請(qǐng)教matlab坐標(biāo)不等距畫圖。如果坐標(biāo)軸上標(biāo)的量希望不要均勻應(yīng)該怎么操作?

A:semilogy/xtick,ytick。

Q10:如何在matlab中接攝像頭自動(dòng)獲取圖像?

A:

比較簡單的是調(diào)用現(xiàn)成的Activex、Com控件來完成,缺點(diǎn)是至今無法編譯。

第二種是自己寫硬件接口,優(yōu)點(diǎn)是可以編譯,并且自定功能,缺點(diǎn)是耗時(shí)。

Q11:請(qǐng)問matlab繪圖能有動(dòng)態(tài)效果嗎?

A:延時(shí)、清屏、重畫。inglikethat

如果閃爍的話打開doublebuffer

高興的話還可以做成avimovie(frame2aviorso)

還有慧星圖comet

Q12:怎么樣更改colorbar中的字體?

A:colorbar說白了就是一個(gè)axes對(duì)象.

這樣:了傅幕按蚩猟oublebuffer

ColorbarHandle=colorbar;(frame2aviorso)

set(ColorbarHandle,'FontSize',20);

Q13:請(qǐng)問matlab中畫多張圖如何使用同一的colorbar?

A:z值映射到colormap,colorbar通過z值和colormap的映射關(guān)系生成的,所以需要

將不同的figure,z值映射相同的colormap索引。

Q14:在MATLAB里如何顯示一副圖像,但使其背景為透明的?

A:用image畫了之后再把a(bǔ)xis關(guān)掉(axisoff)

matlab運(yùn)籌與統(tǒng)計(jì)問題集錦

Q1:在matlab7.0中求解線形規(guī)劃的函數(shù)?

A:linprog一般能直接給出結(jié)果,參數(shù)設(shè)定可參閱help。

Q2:matlab中如何做回歸分析?

A:StatisticsToolbox。

Q3:已知兩個(gè)正態(tài)分布的均值和方差,matlab里有什么函數(shù)可以直接求出來?

A:用fminsearch函數(shù)。

Q4:已知兩個(gè)變量符合一個(gè)聯(lián)合正態(tài)分布參數(shù),能否用matlab生成這兩個(gè)隨機(jī)數(shù)?

A:先生成兩個(gè)獨(dú)立正態(tài)隨機(jī)數(shù),然后利用正態(tài)分布的性質(zhì),用線性變換過去。

也可參閱statisticstoolbox中類似于multirnd還是什么

Q5:求解一個(gè)不等式外加兩個(gè)約束條件用什么函數(shù)好呢?

A:試試用規(guī)劃中的fmincon函數(shù)。Matlab程序安裝啟動(dòng)常見問題和解決方法2007-10-0916:36一、自動(dòng)關(guān)閉問題:

此問題在一些Windows系統(tǒng)中偶爾遇見,可能是CPU引起的,主要表現(xiàn)是Matlab窗口打開不到5S就會(huì)自動(dòng)關(guān)閉。解決方法如下:

首先請(qǐng)確認(rèn)你的MATLAB的文件夾中有如下文件:atlas_Athlon.dll(AMD系列的請(qǐng)用這個(gè),其他的CPU也有相應(yīng)的問題件,就在MATLAB文件夾下),這些是對(duì)應(yīng)處理器的數(shù)值運(yùn)算優(yōu)化文件

然后請(qǐng)按如下步驟進(jìn)行:

1、右擊我的電腦,選擇屬性.

2、在\"高級(jí)\"選項(xiàng)卡中點(diǎn)擊\"環(huán)境變量\"

3、在系統(tǒng)變量下面添加如下內(nèi)容(按\"新建\"):

例如:

變量名:BLAS_VERSION

變量值:X:Matlab7\bin\win32\atlas_Athlon.dll

然后重新打開Matlab即可。

二、不能打開圖形界面

Linux系統(tǒng)有可能會(huì)遇見這種情況。常見的提示是:errorwhileloadingsharedlibraries:libXp.so.6。即缺少相應(yīng)的鏈接庫。解決方法:找一個(gè)libXp.so.6,將其復(fù)制到/usr/lib下即可?;蛘哒业桨琹ibXP的軟件包(libXp-1.0.0-8.i386.rpm,eg)進(jìn)行安裝。

三、無法安裝?

最近經(jīng)??匆娪腥藛朚atlab6.5怎么在Vista上裝不上呢?我沒有Vista,但是我知道,所有的軟件都有自己支持的環(huán)境,安裝以前最好搞清楚這個(gè)軟件和你的計(jì)算機(jī)的環(huán)境是否相符。例如:MSOffice2007在Win2000上無法安裝;QQ原來的版本在Vista上無法運(yùn)行等等。

所以Matlab6.5在Vista下安裝出問題也就不足為怪了。Matlab的常見問題2008年01月31日星期四16:33Matlab的常見問題

>************************************************************************<

===================================-[返回]

1).Matlab6.X在Windows2000/XP上無法啟動(dòng)

:#highsun,2001/3/2,SMTH/NewSoftware#

MathWorks的解決辦法雖然是針對(duì)繁體中文系統(tǒng)的,我試過在簡體

中文系統(tǒng)下一樣可以用。

/support/solutions/data/26985.shtml

/support/solutions/data/26990.shtml

SolutionNumber:26990

DateLastModified:2001-01-30

Product:MATLAB6.0==>CurrentVersion

Platform:Windows

ProblemDescription

WhydoIencounterproblemswhenrunningMATLAB6.0(R12)onHebrew

or

TraditionalChinese(Taiwan)Windows?ItrytostartMATLABbutafter

thesplashscreendisappears,MATLABexits.

PLEASENOTE:ThissolutiononlyappliestoMATLAB6.0.Ifyouhavea

similarproblemwithMATLAB5.0ortheStudentEditionofMATLAB5.0,

seesolution7213.

Solution:

Thisproblemiscausedbyabuginoneofthefontpropertiesfiles

weshipwithMATLAB.ThepertiesfileisusedbyJavatomap

thestandardJavafontnamestosystemfontsforaparticular

However,wemadeafewassumptionsthatdonotholdfortheHebrewor

languageoperatingsystem.TraditionalChineseWindows,causing

Wehavecreatedafixedversionofthemwt.jarfilethatyoucanuse

thisproblem.correctthis.Tousethefix,firstrenameyourmwt.jar

tofileasmwt.old.Thisfileisfoundinthe$MATLAB\java\jar

directory,where$MATLABisyourMATLABrootdirectory.Then

downloadthenewermwt.jarfilefrom:

/pub/tech-support/solutions/s26990

andplaceitinyour$MATLAB\java\jardirectrory.Thenrestart

MATLAB;thisshouldcorrecttheproblemyou'reseeing.

===================================-[返回]

3).如何在給定句柄的axis里繪圖?

plot(data,'parent',haxis);

或者

hbar=bar(data);

set(hbar,'parent',haxis);

===================================-[返回]

4).由Matlab符號(hào)運(yùn)算得到的公式怎么才能將數(shù)據(jù)代進(jìn)去運(yùn)算?

使用subs(),或先將值賦予一個(gè)符號(hào)變量,然后用eval()

===================================-[返回]

5).在Matlab中如何求最值點(diǎn)?如何求一維數(shù)組的極值?

最值:

一維或多維數(shù)組最值用max(data()

如果想返回最值所在的位置,用[Y,I]=max(data)

極值:

data是你的數(shù)據(jù),

find(diff(sign(diff(data)))==-2)+1

找到極大值的位置

find(diff(sign(diff(data)))==2)+1

找到極小值的位置

data(find(diff(sign(diff(data)))==-2)+1)和

data(find(diff(sign(diff(data)))==2)+1)

返回的是極大值和極小值

===================================-[返回]

6).Matlab中如何作線性擬合/線性回歸/多元線性回歸?

即用y=a*x+b來擬合一組數(shù)據(jù){{x1,y1},{x2,y2}…{xn,yn}}

matlab中使用polyfit

x=data(:,1);

y=data(:,2);

p=polyfit(x,y,1);

p(1)為斜率a,p(2)為截距b

多元線性回歸即用y=a1*x1+a2*x2+..+am*xm來擬合數(shù)據(jù)點(diǎn){x1i,x2i,…xmi,yi}

(i=1~n)

|x11,x21,…xm1|

A=|x12,x22,…xm2|

|……………|

|x1n,x2n,…xmn|

Y={y1,y2,y3,…,yn}'

則系數(shù){a1,a2,…,am}'=pinv(A)*Y

在matlab中使用

coeff=A\Y

則可以得到最小二乘意義上的擬合系數(shù)

===================================-[返回]

7).Matlab中如何作圓回歸?

Q5.5:HowcanIfitacircletoasetofXYdata?

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

Anelegantchunkofcodetoperformleast-squarescirclefitting

waswrittenbyBucherIzhakandhasbeenfloatingaroundthe

newgroupforsometime.ThefirstreferencetoitthatIcan

findisin:

function[xc,yc,R,a]=circfit(x,y)

%CIRCFITFitsacircleinx,yplane

%

%[XC,YC,R,A]=CIRCFIT(X,Y)

%Resultiscenterpoint(yc,xc)andradiusR.Aisan

%optionaloutputdescribingthecircle'sequation:

%

%x^2+y^2+a(1)*x+a(2)*y+a(3)=0

%byBucherizhak25/oct/1991

n=length(x);xx=x.*x;yy=y.*y;xy=x.*y;

A=[sum(x)sum(y)n;sum(xy)sum(yy)...

sum(y);sum(xx)sum(xy)sum(x)];

B=[-sum(xx+yy);-sum(xx.*y+yy.*y);-sum(xx.*x+xy.*y)];

a=A\B;

xc=-.5*a(1);

yc=-.5*a(2);

R=sqrt((a(1)^2+a(2)^2)/4-a(3));

TomDavisprovidedamoresophisticatedapproachthatworks

formorecasesinandCodeincluded.

===================================-[返回]

8).Matlab中如何繪制箭頭?

到/matlabcentral/fileexchange/index.jsp

2-DPlottingandGraphics中查找arrow.m,或者

/matlabcentral/spotlight/arrows.shtml

/~jec/matcomp/matcompmfiles/mfiles.html

===================================-[返回]

9).Matlab中如何作二維數(shù)據(jù)的插值?

對(duì)于一維、二維、三維規(guī)則數(shù)據(jù)點(diǎn)陣使用interp1/interp2/interp3,

二維、三維非規(guī)則數(shù)據(jù)用griddata/griddata3

===================================-[返回]

10).Matlab中如何繪制三維數(shù)據(jù)陣?

如果使用matlab,打開幫助窗口,在目錄樹上找到

MATLAB\UsingMatlab\

3-DVisualization:VolumeVisualizationTechniques

如果圖形復(fù)雜,建議使用Tecplot,參見Tecplot手冊(cè)中數(shù)據(jù)格式,將你

的三維數(shù)據(jù)讀入Tecplot,雙擊zone,可以設(shè)置mesh/contour/surface

transparency等。

在Field菜單中有3DIso-surfaceDetails和3DSliceDetails,可以繪制等值

面和任意平面的截面圖。

===================================-[返回]

11).Matlab中如何注解一大段代碼?

注釋大段代碼選中代碼,Ctrl+R;取消注釋,選中代碼,Ctrl+T。

或者用Edit菜單或者右鍵彈出中的注釋。

if(0)

大段的代碼

end

===================================-[返回]

12).Matlab中如何計(jì)算程序運(yùn)行的時(shí)間?

tic

your_code;

toc

或者使用

t=cputime;

your_operation;

cputime-t

===================================-[返回]

13).Matlab中如何改變默認(rèn)的工作路徑?

編輯一個(gè)startup.m文件,其中cdyourpath

或者在X:\matlab\toolbox\local\matlabrc.m的最后添加cdyourpath

參見:

/support/solutions/data/25164.shtml

===================================-[返回]

14).Matlab如何改變默認(rèn)的圖形字體?

編輯一個(gè)startup.m文件,其中

set(0,'DefaultObjectnamePropertyName',Value)

或者在X:\matlab\toolbox\local\matlabrc.m的最后添加

set(0,'DefaultObjectnamePropertyName',Value)

===================================-[返回]

15).如何在Matlab中實(shí)現(xiàn)交互操作?

如果只在命令窗口進(jìn)行交互操作,請(qǐng)參見demo中的例子,主要是

通過input命令和pause/clear/disp等實(shí)現(xiàn)的,還有一些窗口資源可以使

用:

uigetfile,uiputfile,uiwait,uisetcolor,uisetfont,uiopen,uisave

inputdlg,msgbox,helpdlg,questdlg,warndlg,errordlg

===================================-[返回]

16).Matlab中為什么只能在小數(shù)點(diǎn)后顯示四位?

用format命令來改變命令窗口數(shù)字的顯示格式和精度,但不會(huì)影

響matlab的計(jì)算精度,matlab的矩陣運(yùn)算默認(rèn)都是雙精度浮點(diǎn)型運(yùn)算。

===================================-[返回]

17).Matlab如何在命令窗口按照格式輸出?

fprintf(1,"your_format_string",var1,var2,…);

===================================-[返回]

18).如何在Matlab中畫隱函數(shù)曲線?

在/matlabcentral/fileexchange/index.jsp

查找implicit,會(huì)找到一個(gè)ArthurJutan寫的implot.m

Mathematica中繪制隱函數(shù)用ImplicitPlot[]

或者ImplicitPlot3D[]

Maple中為implicitplot(),implicitplot3d()

參見

/~fangq/MATH/download/source/

ImplicitPlot3D.htm

===================================-[返回]

19).Matlab中什么函數(shù)可以刪除矩陣的某一行或列?

A(j,=[];%刪除A的第j行

A(:,i)=[];%刪除A的第i列

===================================-[返回]

20).Matlab中能開的最大數(shù)組是由什么決定的?

Ihavehadsimilarproblems.BelowisanexplanationIreceivedfrom

IanBoyd

fromMathworks(justgivingcreditwherecreditisdue)thatexplains

what'shappening.Yousolutionistorunmatlabwiththe-nojvmmode.

"TheheapmemorysysteminJAVAconsistsofdataandhandleelements.

Whenyouallocateavariableyougetahandleanddata.Aslongas

datahasanassociatedhandle,theJVMconsidersitvalidand

willnotcleanitup.

However,whenyoucalltheclearfunctioninMATLAB,allhandlesare

destroyed,andthedataassociatedisnowinvalid.Thismeansthat

theJAVAenginecanfreeupthatdata(garbagecollection),butdoes

notmeanthatitwillcleanitupatthatmoment.

CallingthePACKcommandencouragesJAVAtorunthegarbagecollector

andde-fragmentthememory.Butitdoesnotforceitto(Thisispart

oftheJAVAdesign).Eventhoughthememoryis'freed'ontheheap,

itisnotactuallyfreetotheOS,itisonlyfreetotheJVM.Here

isonewaytothinkofit:

[MATLAB]

[JAVA]

[OS]

MATLABrunsonJAVA(virtualmachine),andJavarunsontheOS

(physicalmachine).SowhenMATLABisrunninginJAVAmodememory

allocationsarerequestedfromtheJRE,nottheOS.

Oneproblemyoumayberunningintoisthatthedefaultmaximum

JAVAheapsizeisrelativelylow(<=64M,sothatisallthe

memoryonesessionofMATLABwillevergetonyoursystem.

Thegoodnewsisthatyoucanincreasethisvalue.Youwillneed

tocreateajava.optsfilein$MATLAB/bin/$ARCH(orinthecurrent

directorywhenyoustartMATLAandputthefollowingcommand:

%%%BEGINCODE%%%

maxHeapSize=268435456

%%%ENDCODE%%%

Thiswillgiveyou256MBofJVMmemoryandyoucanadjustthe

parameterasneeded.

Note:$MATLABistherootdirectoryand$ARCHisyoursystem

architecture.ThissolutionworksonWindowsaswellasSolaris,

Linux,Alpha,andSGI.AsimilaroperationispossibleonIBMand

HPUX,butwithadifferentsyntax.

Forthe1.1.8JVM(Windows,Linux,Solaris,Alpha,SGI)our

defaultsare:

minHeapSize=16000000

maxHeapSize=64000000

Thesearethestructurefieldnamesinthatcorrespondto

-msand-mx,andthesettingsaboveareroughly16MBand64MB.

ToinvestigatetheJavaheapabit,askviathefollowing:

>>java.lang.Runtime.getRuntime.totalMemory

>>java.lang.Runtime.getRuntime.freeMemory

Whenthefreememoryhitszero,Javawilldoubletheheapsize

(uptothemaximumsetting).

IfyouchoosetorunwithoutJava,youwillremovetheoverhead

ofthemiddleman,butyouwillalsolosesomeMATLABfunctionality

(mostlygraphicsandtheEditor).Youwillstillhavemost

ofthecomputationalpowerthough.

WithoutJAVA,memorymanagementwillcomedirectlyfromtheOS,

andaCLEARoperationwillresultinmemorybeingfreedbackto

theOS.

===================================-[返回]

21).如何在Matlab中添加新的工具箱?

如果是Matlab安裝光盤上的工具箱,重新執(zhí)行安裝程序,選中即可。

如果是單獨(dú)下載的工具箱,一般情況下僅需要把新的工具箱解壓到某

個(gè)目錄,然后用addpath(對(duì)于多個(gè)目錄的使用genpath()或者pathtool添

加工具箱的路徑,然后用whichnewtoolbox_command.m來檢驗(yàn)是否可

以訪問。如果能夠顯示新設(shè)置的路徑,則表明該工具箱可以使用了。

具體請(qǐng)看工具箱自己代的README文件。

===================================-[返回]

22))如何讀寫Matlab的.mat文件?

文件結(jié)構(gòu)參見:

http://www.mathworks.de/access/helpdesk/help/pdf_doc/matlab/

matfile_format.pdf

/support/solutions/data/8757.shtml

/pub/tech-support/solutions/s8757/

readmemat.txt

建議使用matlab自己提供的函數(shù)來讀寫簡單安全,或者參考:

/~fangq/MATH/download/

source/mat_file.txt

來自matlab的cmathlibrary

===================================-[返回]

23).如何得到contour線上的坐標(biāo)點(diǎn)?

lcount=5;

[c,h]=contour(peaks,lcount);

x=get(h,'xdata');

y=get(h,'ydata');

這里得到的x和y都是cell數(shù)組,用x{1}/y{1}來得到每條線上的坐標(biāo)對(duì),

注意,每條線的最后一個(gè)數(shù)據(jù)是NaN

===================================-[返回]

24).如何將Matlab繪制的三維網(wǎng)格圖帖到word里?

如果需要位圖,好處是所見即所得,壞處是圖像精度差,不能放縮:

1.用拷屏Alt+PrintScreen

2.在圖形窗口菜單Edit\CopyOptions….\選擇Bitmap,可以

選擇透明背景,然后Edit\CopyFigure

如果需要拷貝矢量圖:

在圖形窗口菜單Edit\CopyOptions….\選擇Metafile,然后

Edit\CopyFigure,在Word中粘貼

經(jīng)常地,按照Metafile方式粘貼的圖片曲線會(huì)出現(xiàn)鋸齒,最好的方式是

使用eps文件:

1.將需要拷貝的圖作為當(dāng)前窗口

2.再轉(zhuǎn)換到matlab命令窗口,print-depsfilename.eps

3.-deps還可以用depsc,deps2,depsc2

4.在word中插入圖片,選中該eps,如果是word2000以前版本

,不會(huì)顯示圖片內(nèi)容,但可以打印,wordXP即可顯示,又可打印。

5.如果不滿意,可以在word中雙擊編輯,如果安裝有Adobe

Illustrator等矢量圖像編輯軟件,也可以進(jìn)行編輯。

===================================-[返回]

25).請(qǐng)問可以查看Matlab中函數(shù)的源代碼嗎?

Matlab除了buildin函數(shù)和mex/dll文件看不到原碼,其他如工具箱等都可

以直接看到代碼,首先確認(rèn)該文件安裝在matlab中,即which

filename.m存在,然后可以editfilename.m

===================================-[返回]

26).Matlab有沒有求矩陣行數(shù)/列數(shù)/維數(shù)的函數(shù)?

ndims(A)返回A的維數(shù)

size(A)返回A各個(gè)維的最大元素個(gè)數(shù)

length(A)返回max(size(A))

[m,n]=size(A)如果A是二維數(shù)組,返回行數(shù)和列數(shù)

nnz(A)返回A中非0元素的個(gè)數(shù)

===================================-[返回]

27).Matlab中如何中斷運(yùn)算?

在命令窗口按Ctrl+C,在UNIX/LINUX會(huì)立即中斷運(yùn)算,在Windows可

能由于操作系統(tǒng)的原因,有時(shí)會(huì)出現(xiàn)死機(jī)和等待的情況。

===================================-[返回]

28).Matlab中有沒有畫圓或橢圓的函數(shù)?

沒有,Matlab沒有提供直接繪圓的圖元函數(shù),需要自己寫代碼,其實(shí)

就兩句:

sita=0:pi/20:2*pi;

plot(r*cos(sita),r*sin(sita));%半徑為r的圓

plot(a*cos(sita+fi),b*sin(sita+fi));%橢圓

如果是單位圓,可以使用rectangle('Curvature',[11])

===================================-[返回]

29).Matlab下如何定義整形

Matlab默認(rèn)的矩陣數(shù)據(jù)結(jié)構(gòu)都是雙精度浮點(diǎn)型,即64位來表示一個(gè)數(shù)

字,大多數(shù)的函數(shù)和操作都定義在double數(shù)據(jù)結(jié)構(gòu),如果你需要

把double的數(shù)據(jù)轉(zhuǎn)換為整形,然后再參與運(yùn)算,需要使用

double(int32(x))或者floor/round/ceil等函數(shù)

如果為了節(jié)省內(nèi)存,只進(jìn)行賦值、打印等簡單操作,可以參

見uint8/uint16/uint32命令的幫助

===================================-[返回]

30).Matlab如何產(chǎn)生均勻分布的白噪聲?

helprand均勻分布百噪聲

helprandn高斯分布百噪聲

===================================-[返回]

31).在Matlab中debug的時(shí)候能否跟蹤變量的?

可以,如果使用medit,設(shè)置斷點(diǎn)后可以用鼠標(biāo)移到所看的變量上,顯

示當(dāng)前的值,或者在命令窗口打該變量名直接回車。如果在代碼中實(shí)

現(xiàn)調(diào)試斷點(diǎn)等功能,參

見dbstop,dbcont,dbstep,dbclear,dbtype,dbstack,dbup,dbdown,dbstatus,

dbquit

===================================-[返回]

32).請(qǐng)問在Matlab中怎樣輸入特殊符號(hào)啊或者上標(biāo)、下標(biāo)?

matlab的text/title/xlabel/ylabel對(duì)象支持簡單的TeX排版語法,如希臘字

母,上下標(biāo)等例如

text(0.5,0.5,'\alpha^\beta_2');

===================================-[返回]

33).Matlab中如何后臺(tái)運(yùn)行一個(gè)DOS程序?

這里是一個(gè)后臺(tái)執(zhí)行一個(gè)需要外部輸入的DOS命令的例子,需要的輸

入實(shí)事先都寫在同目錄下的input.txt文件中:

dos('myexe<input.txt&')

===================================-[返回]

34).Matlab如何加載輸入文件(批處理模式)?

PC上可以使用matlab/r參數(shù)來在matlab啟動(dòng)的時(shí)候直接加載運(yùn)行m文件

,在UNIX上,使用

matlab<MyMFile>MyOutputFile

來外部執(zhí)行MyMFile,

以上執(zhí)行方式都可以通過腳本文件實(shí)現(xiàn)批處理

===================================-[返回]

35).Matlab如何啟動(dòng)時(shí)執(zhí)行規(guī)定的文件?

參見上一個(gè)問題的回答

===================================-[返回]

36).如何在MatlabGUI中使用圖形背景?

這是一個(gè)簡單的例子:

[A,map]=imread('yourimg.gif');

imagesc(A)

colormap(map)

set(gca,'position',[0011])

axisoff

ax2=axes('position',[0.2,0.2,0.6,0.6]);

plot(rand(1,10),'parent',ax2);

set(ax2,'color','none')

===================================-[返回]

37).大量數(shù)據(jù)點(diǎn)Matlab繪圖為什么很慢?

1.首先看能否用已有函數(shù)對(duì)整個(gè)矩陣?yán)L圖,比

如mesh/plot3/trimesh等

2.如果必須一點(diǎn)一點(diǎn)/或者一條線一條線的添加,最好作如下

設(shè)置:

doublebuffer=on

erasemode=none

backingstore=off

renderer=opengl

以及參考MathWorks對(duì)于高速繪圖的tips:

/support/tech-notes/v5/1200/1203.shtml,

===================================-[返回]

38).Matlab中如何求解廣義積分?即積分限到有無窮的或者有奇異點(diǎn)的積分(瑕積分)?

Matlab的quad/quad8只能作定積分,廣義積分需要自己來寫程序逼近,

流程大概如下:

1.設(shè)定收斂限epsi

2.把為inf/-inf或者歧義點(diǎn)的積分限設(shè)置為一個(gè)初始值,k=1

3.計(jì)算定積分Q(k)

4.然后朝著inf/-inf或者歧義點(diǎn)移動(dòng)一個(gè)步長,然后計(jì)算定積分

Q(k+1)

5.判斷(abs(Q(k+1)-Q(k))

Mathematica中可以使用NIntegrate[],對(duì)于無窮振蕩的函數(shù),可以使用Method->

QuasiMonteCarlo或者Oscillatory]

===================================-[返回]

39).為什么我的Matlab程序這么慢?

我們工學(xué)院的收發(fā)室的門上貼著一張小紙條,寫的是

"Ourpolicyisalwaysblamingthecomputer"

大多數(shù)的人在遇到問題的時(shí)候,總是責(zé)備計(jì)算機(jī)如何如何,別人如何

如何,其實(shí),最最主要的因素是在于自己。

一個(gè)程序運(yùn)行快慢,有很多因素決定,最主要的是算法,簡煉而優(yōu)美

的的數(shù)學(xué)公式勝過100遍的優(yōu)化。能從算法上改進(jìn),才能比別人有根

本的優(yōu)勢(shì)。計(jì)算機(jī)也很重要,以前我總把自己用的PC看成萬能的加

以崇拜,對(duì)UNIX嗤之以鼻,結(jié)果當(dāng)自己真正開始算起來,才知道差

別有多大。搞大型數(shù)值計(jì)算的,沒有好的工作站或者并行系統(tǒng),就輸

在了起跑線上了。然后是程序的優(yōu)化,看看變量是否占用太多內(nèi)存,

看看是否有功能重復(fù)的模塊或者計(jì)算,經(jīng)常的是用犧牲內(nèi)存來換取速

度,具體取舍,具體需要來決定。用profile看看哪些語句占用時(shí)間最

多,然后把核心部分進(jìn)行優(yōu)化。

如果是使用Matlab,使用vectorization和矩陣整體操作的代碼要比大量

的for循環(huán)快很多,eval/inline函數(shù)如果出現(xiàn)在核心循環(huán),也會(huì)讓速度下

降幾時(shí)倍的。

===================================-[返回]

40)..Matlab中如何作非線性回歸?

請(qǐng)參考

/support/solutions/data/10652.shtml

matlab默認(rèn)只提供了多項(xiàng)式擬合的函數(shù)polyfit,對(duì)于其他稍微簡單

一點(diǎn)的擬合,如標(biāo)準(zhǔn)的指數(shù)、對(duì)數(shù)、高階多項(xiàng)式擬合,都有解析公式,參見:

/LeastSquaresFitting.html

對(duì)于更加復(fù)雜的非線性函數(shù),建議使用Mathematica或者DataFit

Mathematica中提供了Fit[],以及

<<Statistics`NonlinearFit`

NonlinearFit[],NonlinearRegress[]

可以擬合任意復(fù)雜的表達(dá)式。

DataFit可以自定義擬合模型,適用于復(fù)雜系統(tǒng)的擬合。

===================================-[返回]

41)..Matlab中為什么我對(duì)m文件、simulink模塊,mat文件的修改不起作用呢?

檢查Matlab路徑中是否有與你的m文件、mdl文件或者mat文件同名的m文件、

mdl文件或者mat文件。Matlab執(zhí)行搜索到的第一個(gè)文件。

===================================-[返回]

42).Matlab中,函數(shù)里面怎樣使用基本工作空間中的變量?

為什么inline函數(shù)不能使用外面的變量?

函數(shù)只能存取它自己的工作空間中的變量。要在函數(shù)之間,或者函數(shù)與基本

工作空間之間傳遞數(shù)值,嘗試以下方法:

1、使用全局變量,用global定義全局變量

2、使用evalin:

evalin('base','v=1;');%在基本工作空間中執(zhí)行命令:v=1;

evalin('caller','v=1;');%在調(diào)用該函數(shù)的函數(shù)的工作空間中

執(zhí)行命令:v=1;

3、參數(shù)傳遞

4、使用assignin:

assignin('base','v',v);%將v賦給基本工作空間中的變量v;

assignin('caller','v',v);%將v賦給調(diào)用者工作空間中的變量v;

inline函數(shù)里面只能出現(xiàn)函數(shù)和參數(shù),要傳遞一個(gè)可變系數(shù),需要用evalin。

如:fzero('f(evalin(''base'',''x1(i)''),x3)',求解區(qū)間)

===================================-[返回]

43).怎樣在Simulink中調(diào)用m文件?

函數(shù)m文件可以使用Function&Tables中的Fcn模塊。如果有多個(gè)輸入,

用Mux組合成一個(gè)向量,然后在Fcn模塊的Expression填

MyFunction(u(1),u(2))"。如果有多個(gè)輸出,用Demux分解成多個(gè)標(biāo)量。

===================================-[返回]

44).Matlab中怎樣進(jìn)行數(shù)制轉(zhuǎn)換?

參見:hex2dec,oct2dec,bin2dec,dec2bin,dec2oct,dec2hex.

===================================-[返回]

45).matlab中的*.p是什么文件?怎么用?

p文件是pre-parsed的縮寫,即matlab在第一次運(yùn)行某m文件時(shí),matlab把該

文件先編譯成一種matlab的pseudo-code,當(dāng)你再次運(yùn)行該m文件時(shí),節(jié)省了

parse的時(shí)間。

p文件可以離開m文件單獨(dú)運(yùn)行

:#MikeRobbins(michael.robbins@),2001/04/20,comp.soft-sys.matlab#

在matlab中用pcode('yourfilename')來生成p文件

===================================-[返回]

46).在Matlab中有g(shù)oto語句嗎?

matlab中沒有提供goto,因?yàn)榻Y(jié)構(gòu)化程序設(shè)計(jì)不推薦使用goto,但在matlab

中,goto的功能可以部分用結(jié)構(gòu)化的異常處理機(jī)制來實(shí)現(xiàn),比如從多重循環(huán)

中跳出,具體代碼為:

try

fori=1:10

forj=1:10

fork=1:10

do_something;

if(jump_condition)

errorid=-2;

error('Iwanttogetout!');

end

end

end

end

catch

fprintf(1,'catcherror:%d',errorid);

end

===================================-[返回]

47).請(qǐng)問matlab6.X的那個(gè)matlabserver是做什么的?(matlab開機(jī)運(yùn)行問題)

如果你在安裝matlab時(shí)選擇了webserver的話,在每次重新啟動(dòng)后系統(tǒng)

進(jìn)程中就會(huì)出現(xiàn)matlab/matlabserver兩個(gè)進(jìn)程,如果你不需要使用

matlabwebserver服務(wù)的話,建議在安裝時(shí)不要選擇webserver,

如果已經(jīng)安裝的話,可以在"控制面板->管理工具->服務(wù)"中找到

matlabwebserver,然后把它disable掉。

===================================-[返回]

48).Matlab中如何用鼠標(biāo)取得坐標(biāo)?

matlab中用ginput來取得圖像上的一點(diǎn)。注意:image()/imagesc()對(duì)象

的y軸是和一般圖的y軸反的。

如果復(fù)雜的話,可以在ButtonDownFcn中g(shù)et(0,'PointerLocation')

或者get(gcf,'Position');

===================================-[返回]

49).Matlab中有階乘函數(shù)嗎?

matlab沒有提供直接的階乘函數(shù),但可以用prod(1:n)來求n!

用prod(1:2:2n-1)或者prod(2:2:2n)來求解n!!

===================================-[返回]

50)..怎樣才能把Maltab學(xué)精?

"帶著問題學(xué),活學(xué)活用,學(xué)用結(jié)合,急用先學(xué),立竿見影,

在'用'字上狠下功夫。"

===================================-[返回]

51)..Matlab如何計(jì)算大階乘?

如果只需要大致的值,取log10,

計(jì)算出result=log10(1000!)=log10(1)+log10(2)+...log10(1000)

然后求10^result=10^result的小數(shù)部分*10^result的整數(shù)部分

===================================-[返回]

52)..Matlab中怎樣求變上限二重積分?

對(duì)于解析函數(shù),用兩次int即可。

如求x+y在0[返回]

53)..用符號(hào)積分算出來Ei是什么意思,怎樣求值?

Ei是maple中的指數(shù)積分函數(shù),表示exp(-x*t)/t^n對(duì)t從1到正無窮大的積分。

Ei(n,x)=int(exp(-x*t)/t^n,t=1..infinity)

用命令“mhelpEi”可以查看詳細(xì)說明;用符號(hào)計(jì)算得到的不明白的函數(shù)都可以通過

mhelp命令得到幫助。

求Ei(1,2)可以用maple命令得到:str2num(maple('evalf(Ei(1,2))'))。

===================================-[返回]

54)..Maltab中使用\n換行在notepad中顯示為小黑塊,為什么?(RandyPoe)

換行和回車是不同的,而且在不同的操作系統(tǒng),解釋也不相同。

\n一般會(huì)操作系統(tǒng)被翻譯成"行的結(jié)束",即LF(Line-Feed)

\r會(huì)被翻譯成"回車",即CR(Cariage-Return)

對(duì)于文本文件的新行,在UNIX上,一般用\n(LF)來表示,Mac上用\r(CR)來表示,

Windows上是用\n\r(CR-LF)來表示。

所以在matlab中使用\n來寫回車,在windows上打開會(huì)出現(xiàn)小方塊。如果想

避免這種情況,打開文件時(shí)使用t參數(shù):

fid=fopen('myfile.dat','wt');

===================================-[返回]

55)..Matlab中能開多大數(shù)組?(StevenLord)

使用computer命令:

[C,MAXSIZE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論