版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45097.3-2024智能消費(fèi)品安全第3部分:風(fēng)險(xiǎn)控制
- YC/T 398-2024煙草商業(yè)企業(yè)物流現(xiàn)場(chǎng)管理規(guī)范
- 2025版工業(yè)4.0項(xiàng)目廠房收購合同樣本3篇
- 航空航天碳資產(chǎn)管理辦法
- 礦山工程招投標(biāo)法規(guī)實(shí)務(wù)講解
- 橋梁質(zhì)量檢測(cè)協(xié)議
- 2024年度地板企業(yè)競(jìng)業(yè)禁止協(xié)議范本3篇
- 企業(yè)重組顧問聘用協(xié)議模板
- 私募基金資金流動(dòng)規(guī)則
- 畜牧養(yǎng)殖保證人擔(dān)保承諾書
- 湖南省益陽市2023-2024學(xué)年高二上學(xué)期1月期末物理試題 含答案
- 銅工崗位安全操作規(guī)程(2篇)
- 擦玻璃安全責(zé)任合同協(xié)議書范本
- 2024-2025學(xué)年人教PEP版英語五年級(jí)上冊(cè)期末試題
- 2019水電工程探地雷達(dá)探測(cè)技術(shù)規(guī)程
- 災(zāi)難事故避險(xiǎn)自救-終結(jié)性考核-國開(SC)-參考資料
- 室內(nèi)墻地磚鋪貼施工技術(shù)交底
- JP柜技術(shù)規(guī)范可編輯范本
- 有關(guān)中醫(yī)康復(fù)治療課件
- 江蘇省蘇州市(2024年-2025年小學(xué)五年級(jí)語文)統(tǒng)編版期末考試((上下)學(xué)期)試卷及答案
- 期末復(fù)習(xí)試題(試題)-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)人教版
評(píng)論
0/150
提交評(píng)論