EDA365电子论坛网

标题: 大神给大家总结的一些常见Matlab问题 [打印本页]

作者: mytomorrow    时间: 2020-3-27 11:29
标题: 大神给大家总结的一些常见Matlab问题

! l4 n+ n# d! }6 e- ?4 l  UQ:如何在给定句柄的 axis 里绘图?
5 N: d5 J$ m0 I9 r, u8 p* u8 J( M/ xA:plot(data,'parent',haxis);4 k* R/ d- m4 ^2 R8 X- h
或者
: v9 ?! ?4 `! G4 Nhbar=bar(data);
: t- w* j; s  [' J6 E, V% iset(hbar,'parent',haxis);! S! x/ C( I+ v1 u* u' c
) l' F5 a  |1 S. p

' r0 A: f9 v- k. y7 N6 rQ:Matlab 中如何作线性拟合/线性回归/多元线性回归?
# I6 q0 t; q' m' J- bA:何作线性拟合是用 y=a*x+b 来拟合一组数据{{x1,y1},{x2,y2}…{xn,yn}},matlab 中使用; l5 }2 q) P6 w3 e9 O
polyfit 1 c6 c( L5 A4 b: E- W4 s: ~( N
x=data(:,1);( D. G! W3 l9 M# V1 s
y=data(:,2);
7 r( X- l5 \6 ]+ m/ }% G3 D$ h; ^7 Q- ip=polyfit(x,y,1);, b* i. J  Q6 m% G' L
p(1)为斜率 a,p(2)为截距 b0 _4 ]% J7 x7 I4 ^
多元线性回归即用 y=a1*x1+a2*x2+..+am*xm来拟合数据点{x1i,x2i,…xmi,yi} (i=1~n)
) S, b1 G- E" G- h% M) y* D2 M8 y|x11,x21,…xm1|
$ E  M2 r; h4 r0 z+ I# k! y9 zA=|x12,x22,…xm2|
$ S# d( j9 Z8 t: X# H0 U, a& R! c|……………   |
. |% {" A6 P3 a# f" j|x1n,x2n,…xmn|' W/ ^$ P# o$ t4 L3 O
Y={y1,y2,y3,…,yn}'; b) p1 A- x# I/ i" v! d
则系数{a1,a2,…,am}'=pinv(A)*Y。 $ f; V! T" x7 B4 v% m* [
在 matlab 中使用 coeff=AY 则可以得到最小二乘意义上的拟合系数6 X: Z& r4 q% o9 a0 m: W
1 \1 [* o* u2 J. D; S
Q:Matlab 中如何作二维数据的插值?
$ x! O) t* a8 PA:对于一维、二维、三维规则数据点阵使用 interp1/interp2/interp3, / G- p/ z# q! x0 {/ b
二维、三维非规则数据用 griddata/griddata3( z* F  D1 q( G: c2 F, D
) V/ n2 ^* Q  e# C( S. X+ c
& d( @" J% R! g" I
Q:Matlab 中如何计算程序运行的时间?& u0 M8 o) h8 n- K  Y" ^! K- I: b" E
A:tic
1 K( S1 n6 B* ]' I) c2 E" myour_code;
! E1 ]; U/ w+ Ktoc . L1 C7 ?( Q) d, O; S& y- m1 [
或者使用:
. j) }4 @1 U" T, A9 Ut=cputime;  ( r0 K9 z, L& v: v; p
your_operation;  3 R4 u2 C% J- O& Y4 u
cputime-t- m; ~! g. R/ P
( T! K/ G/ e, d. s, `
6 s3 P: J( b! v4 r6 m) x  e
2 i0 V* A& e$ t4 R; k
Q:如何在 Matlab 中实现交互操作?; u/ a; C/ w, f& z' L# v
A:如果只在命令窗口进行交互操作,请参见 demo 中的例子,主要是通过 input 命令和
3 f+ ~( ^( s1 K/ r$ Y; upause/clear/disp 等实现的,还有一些窗口资源可以使用:
9 Y! J% X1 S- A- quigetfile, uiputfile, uiwait, uisetcolor, isetfont, uiopen, uisave3 u8 [" u- ~' e% ~) X( @
inputdlg, msgbox, helpdlg, questdlg, warndlg, errordlg
8 ]0 B! _9 O6 O" L: h- V# j! n( Q, z& U7 A! B; k& s- ]3 I

# X( I$ S( I% f# o* [2 n
( r& d, I! `9 CQ:Matlab 中为什么只能在小数点后显示四位?% t7 C1 R- I2 t& e8 P
A:用 format 命令来改变命令窗口数字的显示格式和精度,但不会影响 matlab 的计算精度,/ Q& U- l' ^2 h
matlab 的矩阵运算默认都是双精度浮点型运算。: b/ w3 O1 X7 M8 v+ z; v

/ [0 Q- Z4 J: h. }8 D6 \9 g) G! T4 k( Y1 d- \
1 m1 ^8 d  S4 j& [* D
Q:Matlab 中什么函数可以删除矩阵的某一行或列?
( F# u+ n* q, s3 I& TA:A(j,:)=[];  %删除 A的第 j 行
2 H0 Q  `3 K. p7 s5 y9 X6 }A(:,i)=[];  %删除 A的第 i 列) y+ @% c/ |" s3 c

  L4 [* ~5 u9 T/ H7 o, D8 t3 g7 v. O8 L% M, }2 u( ^
1 [( ~4 G5 s) V" N, b
Q:如何得到 contour线上的坐标点?
, d5 E" g+ F5 C) N  |3 ~A:lcount=5;
/ D* H, e( R6 U- F' v[c,h]=contour(peaks,lcount);
% g; b& O0 Z2 l+ j$ J( H& G+ jx=get(h,'xdata');0 W& \9 _! g8 C6 W
y=get(h,'ydata');
0 H7 V4 L4 T4 ]+ i( F这里得到的 x 和 y都是 cell 数组,用 x{1}/y{1}来得到每条线上的坐标对,注意,每条线
% M1 f. m3 M6 @4 a的最后一个数据是 NaN
" C) i- X* e  I# J) A0 r ) L" n) a, }) {1 y. f# I5 K

' _1 E; u1 ^  q) I& f' F7 T/ Z# \7 I: W( @# }/ z/ G- e
Q:Matlab 有没有求矩阵行数/列数/维数的函数?
. Q: \5 X& k. a: D- MA:ndims(A)返回 A的维数
$ C" z/ t2 q6 j" e. B9 hsize(A)返回 A各个维的最大元素个数
( A/ V4 I" V- Q, V4 D. L* mlength(A)返回 max(size(A))  ^1 Q  P4 s* ]3 h5 t  e8 ?  F2 N
[m,n]=size(A)如果 A是二维数组,返回行数和列数
$ ]2 v# w; z6 `( {nnz(A)返回 A中非 0元素的个数
( U4 ~- ?1 L4 D- S3 P: v
- z7 D7 ]: \) d0 Z! H" K# v ; w3 {: u5 Q, a* D# O

7 S5 k# M) b0 z- v& h
* o4 s6 m# _/ b7 N$ Z1 i; N4 dQ:Matlab 如何产生均匀分布的白噪声? ! F! l( A# a/ t' s- @
A:help rand  均匀分布百噪声
8 l3 e* F5 ]8 ?" Z9 Xhelp randn 高斯分布百噪声
9 G6 m1 D6 @- L% L9 a
, ~. ?( s$ \9 B! A! z8 r, C7 e ! c- H" ~8 O$ a
: ]) ~2 S& T& G* Q

; w0 q5 h$ ?! k# o
) J& [! y  f/ `6 S7 ?Q:请问在 Matlab 中怎样输入特殊符号啊或者上标、下标?
, w' Q" [; t5 s: g0 zA:matlab 的 text/title/xlabel/ylabel对象支持简单的 TeX排版语法,如希腊字母,上下标等。- ?2 [+ E1 K; S: C8 e! X
例如:text(0.5,0.5,'alpha^beta_2');' k: o& E$ O2 F/ ~: _
8 m0 ^% g4 v1 q4 F  |9 q) A8 [
% T1 E1 w) `! [# n
9 t& b! a6 C; [' c1 Q) L+ f8 s4 `
Q:Matlab 中如何把向量拓展成矩阵?
; N# ?! h$ Z1 I7 n5 xA:可以使用 repmat(),例如:  repmat([1,2,3]',1,5)1 y2 v; F# i  l/ U1 y# d
或者使用 kron(),例如:      kron([1 2 3]',ones(1,5))
) w8 ^6 i6 V* G5 R* Z  ?; x( h( X, S
; Z) ]$ X6 G" `: X
0 G& o- M) A( [ 8 f7 l4 d  ?& q& b- A0 o

  ?+ \% _) z) w! F5 OQ:matlab 程序运行时如何中止
4 d& o$ j4 @& L8 D2 j2 S0 F$ tA:快捷键 ctrl+C                  强行中止,程序不能继续运行
% B( S* n4 ?# D! R) O( Z0 F7 E& c程序中用 pause 命令      自己选择中止断点,可以回车继续运行- p! L; g& |; o8 d, {4 L% V+ }' X& V

3 Y4 n; }3 g$ i. c0 i4 F9 a4 N! x# P* {# ?# s! }5 q
Q:matlab 计算结果为矩阵如何保存和取出" y# t& ^6 I# F% X% \3 I$ v1 |4 v% j
A:save  将当前工作区的变量储存在一个 MAT-文件中7 y6 U9 Y: d, h- M2 M
load  调出一个 MAT-文件* O* s3 N5 Q1 S2 P
3 _. R- J2 Z8 S4 j2 ^. _) Z) g

$ \  H( K) R* i$ v  m5 fQ:那位高手能否讲一下 varargin  的具体用法。
0 ~+ o3 \! u* j2 u4 l1 ~' f& NA:varargin是代表输入的参量,必须作为最后一个参数出现。4 Q4 O6 {. s. U4 \! J* _( T
比如:定义函数 varargout=fun(x,varargin);0 @2 M* t5 w9 C5 T3 c( ^2 |
那么调用时:[A,B,C]=fun(x,m,n,l);* n& O% c) U4 D& ]# Q
varargin 就代表 m,n,l2 O7 s. T/ t4 r, G9 q- z
1 T! x8 n* J: b. X
( x- l! u3 _  Z) P0 b
" \5 ]4 x: j! W8 @5 ?
' v$ ]# @" ]6 N7 D  j
Q:mean(A,dim)用法?5 j$ \# |/ S  d$ c8 m$ Z" c# L& `& ?
A:mean(X):返回向量 X的算术平均值。5 A8 J& r6 b, t7 T
A为矩阵时候,mean(A):返回一个行向量,其第 i 个元素是 A的第 i列的算术平均值。2 @: b; e5 i* I* B9 T
(比如[a1,a2...an])/ W3 N& G! ]8 _: P( ]$ W
mean(A,dim):当 dim为 1 时,该函数等同于 mean(A);当 dim为 2 时,返回一个列向量,
  L( D) V& j. ^8 _其第 i 个元素是 A的第 i行的算术平均值。 (比如[a1,a2...an]')+ z: b- L9 i1 U1 z
此类问题可以直接 doc mean 来查看
4 l# }; H( U7 Q3 l1 e
& `  ~0 r2 D) h2 z( @
8 w( V& X$ I0 Z1 Q5 }5 B7 ~& F) X9 j# K- m  `9 Z' Z
119.使用''和 sym 生成字符表达式的区别
2 c& `! g7 s# a5 B2 n8 Z! xQ:例如:& V8 ]  T/ p, N5 W/ A% Q
            f1='a*^2/(b-x)';  [, v  c, X/ M
            f2=sym('a*^2/(b-x)');
' w" R+ t  C7 P) i            f1==f2;. t7 h- q" [6 ]+ K, I
            ans=1;
8 h0 V0 f: p% q& U$ v7 f             那是不是 f1和 f2 完全相同呢?
  T+ {3 f7 v  f) @# kA:当然,一个是字符型的一个是符号型的; l. K2 B! C" O# G! D, x& b
- M/ C- a3 L- J- _" i/ X

& W0 a" ~6 {+ D* _% M5 i- q% e6 n4 _

: @4 p) {3 D) j9 h+ ~  f" K* ^2.matlab如何自动读入一组数据文件?
: D& C! w; c8 `4 iQ:一目录下有一组数据文件,文件名为 data1.dat,data2.dat,data3.dat,......,dataN.dat  i8 B! u1 O2 `; H5 c# q  B* \* K1 E
由于文件数量非常大,如何让 matlab 自动的按次序读入?
9 m6 i/ v( U) S( t, l( uA:filepath='d:/';$ M6 U0 t# p- g" N
for ii=1:N
, |  P- x! a0 z: V3 N  d6 h( [0 y    filename=[filepath 'data' num2str(ii) '.dat'];
  l' t& R7 x" `" n- d/ }    load(filename)
/ A  @$ S& T7 t6 K& \4 n3 Kend
2 g( r' i$ R: @: t2 W% y# l. UQ:好在文件名是 data1.dat,data2.dat,data3.dat,......,dataN.dat,不然难弄,^_^
  D9 k; o8 h* P: Y  p" ?A:原则上,该是可以将所需量尽量作到一个文件中,逐步读取(fortran 里面系这样的) 。0 l+ f# g# L0 q& W
文件名不一样也好弄,可以用 totalcommander 等软件批量改名。也可以用 matlab 自带的函
9 F& e: G0 P3 Q. ]/ [( V2 J# }7 R6 a数把当前文件夹下的所有数据文件的名字都读到一个变量里面,然后 load 这个变量里面的
5 e0 a7 [2 H! ~. z+ }1 ^0 F  e元素。( B- m4 _: h) f0 M& u
" o% v' {4 p0 k* b9 W7 \/ t. v

# f  K+ D' h& f+ [# ^
& ]) a& F: w0 U' g7 `, w* X  w  r
% U+ d+ H  @1 n- {/ v
7 s. o# W8 |* a$ G: a+ x% e/ C( C& ~5 {7 r1 Y, N' h! c
Q:在 MATLAB 中如何实现两个字符串的相加,例如:'aa'与'bb'的加和为'aabb'?/ }  z" U' G6 b6 i* ~5 Y
A:x1='aa'
: d$ Q8 n3 B+ L% t/ U$ j# L, yx2='bb'" T3 B4 M2 f; }3 O$ J7 @
x=[x1 x2]  z  g( P7 |3 R1 Y/ U0 I
doc strcat
8 m1 r9 O# G' S  V' P5 a
: O; [9 V7 q+ E4 {+ X6 O- R$ H$ C8 [9 K% _' ^; W6 w, s* C
如果求点积:dot(a(1,:),a(2,:))
; B$ H5 p9 a7 u; B1 R如果求向量积:cross(a(1,:),a(2,:))
& h. W4 a3 z: H. ~5 x' W( M% I
7 N# e. E3 z+ s8 t; b ) |& Z/ q% z4 H$ U2 k, {2 L; Y2 w8 z

4 P; s( P4 j3 m9 nQ:如何用 set 改变 gca 变量中 xtick 和ytick 的属性值
: Z% |. }7 s" b+ `/ YA:x=[1 1.53 4]; 5 }" o9 W7 k2 W
y=[1 2 3]; & t( F$ Y1 ]$ {3 }
plot(x,y)
. K# G" y- Z2 m% A: }! \set(gca,'XTick',x) % u) j% m9 n$ t
set(gca,'XTickLabel',sprintf('%3.4f|',x)) . a$ v2 a! ?1 {( g( g' U
set(gca,'YTick',y) 0 |4 n7 o- ~" G- h
set(gca,'YTickLabel',sprintf('%+1.2f|',y))
2 l/ L  o9 K  l7 m, y# K& B, g  x7 X. V9 g
& W! O7 @5 }& _" U8 G) O
0 y$ R8 D5 ~  B# ]; J0 E/ r& c! J( X

. {- K( C7 O+ H, J7 |3 c, O* \* T: @: ~7 H! |, w* A1 [  i
Q:有关进度条和画图的问题
0 K. V5 Y# }3 y) \* B/ f) `$ O0 g3 DA:h = waitbar(0,'Please wait...');
! M" S; K. O5 n% Jset(findobj(h,'Type','patch'),'facecolor','b','edgecolor','b');& d2 z6 w5 [( a. p& R2 Z* c
for i=1:100, % computation here %0 I8 S% T3 Y/ R
x=1:100;
5 {8 {0 J& v9 C' n- o+ Oy=i+1:i+100;" W4 x* f. W; r6 X
plot(x,y)
* N) D: A+ Z0 J7 n7 V% f1 Kclose all
: R# b6 }2 s8 \waitbar(i/100)
/ S) A3 v$ T+ m( |end& y2 J+ Y: X% ?4 M
close(h)9 |" u2 }- D! C$ n2 ^: M9 u" w! d& }4 |% _

( f/ J+ u. U4 }0 r4 S1 {: h
- Z2 p' h* r6 ^8 l6 q7 I* c6 _
8 ]; p7 T+ [" a# k# N+ D6 ^- u2 v1 E& `) Z6 v1 C: ]
Q:在 MATLAB 中如何画灰度图?
  x: Q1 w0 I9 d& e* P% SA:如 A为 2 维矩阵3 r  z5 [8 Z/ D# G' j) J
figure; imshow(mat2gray(A));% ?# e' ?7 S8 ^) @* r$ Z1 h

% c" l9 I7 g  P- t3 }! z
! ?; R" e& _$ j; B5 K% K$ }5 z
0 C! B7 k& |' r' [- ^Q:matlab 里的图形怎样去掉坐标轴留下坐标单位呢?
! ^( H& m2 ^0 O, p7 q, CA:一个小例子
4 r9 K. l3 ]# Bhold on;
* U7 Q6 y$ a& ~0 H) m/ E- Zplot([0,0],[0,1],'w','linewidth',8);5 ?1 J# D4 K( j9 a
plot([0,1],[0,0],'w','linewidth',8);
* N( L' u0 s& {! W7 rplot([0,1],[0,1]);6 D! R7 E" J4 }0 }( g& ~# a" B
box off8 W) o' S) I0 P3 C5 x; L7 n
xlabel('zjliu');ylabel('zjliu')- D" P5 N4 F" J. H" @
, H2 @4 [6 H0 R( F6 \5 W

% V, e! j* s% Z# l1 a) k! T1 c# ?+ s% v! D
Q:Matlab 怎么画三维数据的灰度图?
- A5 C. f. M* D$ g0 K& t# Y! E2 uA:[xi,yi]=meshgrid(x,y);
. z; Z& h5 m1 e  H9 s# j% hpcolor(xi,yi,zi);colormap('gray');
2 F+ i; u+ o* t5 i/ ^4 vcolormap(flipud(get(gcf,'colormap')));
( v& T  g% C$ [+ gmeshgrid 的时候分的细一些让他变得精细一些
* q3 l' N3 i) a3 ^7 _9 Y6 U- T+ t2 C

5 v% [4 U( @' [: z3 G1 V( x
8 Q: g8 ^3 t  I* x& P
- h' I' ~) {* D  r- M( \! b4 `$ a: f8 Y/ n3 Y1 n
/ G+ d4 O9 |% ~1 K3 J/ ?% \+ \
坐标轴问题8 |( _$ R3 }/ }: W0 o0 ]" J
Q:我想让 x  轴的值从左到右是递减的该怎样实现?还有 y轴是 10 的幂次方递增?
' Y1 @5 v* K/ Y" oA:plot(1:10)& n1 _' C- `* P
set(gca,'xdir','reverse')
3 \$ }8 K3 e8 L  Z! r! g: Zset(gca,'yscale','log')
2 ]" B& `2 K0 m. U此外,可以+ w, X( L; J* d( Z
双对数用:loglog()7 Z/ x: U# \2 Y0 V- q
对 x 轴用:semilogx()
8 N# l, ^% ?5 \3 E9 C3 b对 y轴用:semilogy()
. {9 @$ r9 a9 m! F7 _6 i- @9 s5 [5 m) X  h8 d' O1 u; L9 K

' t+ V$ p2 G7 e0 M2 |+ p- `5 ~7 j1 W
Q:请问 matlab 图形中用来划分多少份的那些线能去掉吗) T7 F& x% W2 h6 U2 b' T7 B% W' B" K& _
A:shading flat" O9 g0 ?2 f7 e

$ V6 V% B6 P: N% c2 F- c 5 e) k: J  z4 u9 j+ R

- Z0 ~' D6 {; @  b  u, @Q:如何用函数形式设定坐标轴的数据字体与字号% y6 u$ d# T0 f$ W
A:举个例子2 |- p1 o$ c! l- G; W+ q2 I4 {. L! m
set(gca,'FontSize',12, 'FontName','标楷体')
1 [% X7 Z, f- L字体设置属性:
! M- X4 \( o4 [9 Q1 _5 A: O# j# \'FontAngle'------  设置字体角度1 A  o. n4 T1 [
'normal'------  正常;
7 D. \% E! {; m'italic'------  斜体;
+ Z& t. Y' a# @% M4 q& C9 a'oblique'------  倾斜; , f7 {7 G5 _, C# H6 i9 l
'FontName'------  字体名称;
" @& n! I: h: Z'FontSize'------  字号大小 9 V5 m! k' N# p2 T+ z  b
'FontWeight'------  字体的轻重,选项为:'light','normal','bold'
* ]$ A0 Z/ s7 u如何修改图形分格线?
; b; s" x4 p: E用 set 改变gca 变量中 xtick 和 ytick 的属性值7 ~- G# W/ t: g/ Q8 r* V! O$ }+ O$ U
  _) J: O. F( \

7 m4 |8 x5 _; Q% V, D/ B/ B( K2 `# O' q' s* ^/ y3 f' I3 R

0 X. N! r6 s" `6 z' Z% ]( w' O; Y$ w& ]& E
' j9 T6 p7 M7 h, T  ]
从一个已经得到的图像中得到其中某个点的坐标6 q" x! N( y6 ~% [' B
Q:点是鼠标选取的,如何得到其中某个点的坐标/ W4 w( s+ {' a8 @& |! o3 k6 P; s
A:[x,y]=ginput(n)
2 ?$ q) z; V, P6 p8 I& rn:要点击的次数6 m! m: f4 U5 G2 p0 S6 w
x,y分别为点击点的 x,y坐标,当 n>1时,x,y为向量
( A  V0 ?& @% H* P' O# ^, D/ h% w8 b$ b* q/ ~$ v$ Z8 ^
# O  o. n7 o$ N$ l" o2 {+ X/ d
用 matlab 画圆,且标记刻度
5 J0 X  q% A9 l: e! [* \Q:其中圆自最顶部以 0°、15°、30°、……330°划分,并以数字标明其中得 30°、60°、- u' D# k- F# I, U. S* {
90°、……330°。  或者怎样用 rose 命令或 compass 命令实现。
' `1 x; ~% U/ g4 t) _A:用 polar画吧,rose和 compass 画的不是你要的图
2 o: }, g. t) O( ^3 |$ R% Ltheta=linspace(0, 2*pi);
/ v2 _, F4 q6 \2 g# O6 M' nr=ones(1,100);
) \# x4 @, k3 Rpolar(theta, r);
4 |) `5 s5 o0 j( U# Y; W+ Y: A- G9 q/ b/ ?9 n& \  S, `( k$ W
  q+ S" y4 R- J

: M% n  q, A/ G* m* L; z$ Y
" K* Z* }8 z7 O6 T+ _
# G' P# C/ o8 S7 [2 f如何控制二维图的坐标刻度不是等刻度
0 N7 s: {6 O" p" \) yQ:我画了一个二维图,可是 x 轴总是等刻度比如 1,2,3,4,5,我想把它变成等比刻度,5 }0 l; U$ b! J3 X8 F
比如 1,2,4,8,16。matlab 可以做到吗?如何做?
! W8 y) e( F7 L) [: t+ mA:用 axis 命令可以改变坐标轴的刻度,如果想改成等比刻度,可以对原数据取 2为底的对
4 z4 ^. W8 O+ s! d; |' u# D! I数。2 W! e0 _% s1 e2 L+ H5 J
Q:能不能给个例子?我想把 x 坐标的刻度变成平方形式,1,4,9,16,25,36,49,……,
: T# E9 ?  a5 \' M+ ?" \我看了帮助还是不会用
( s7 U4 W+ l& U1 Y2 e6 F4 @A:两种不能同时实现
6 p3 y7 b) B3 i* z第一种,变刻度3 f1 r6 k$ F3 A* e& z0 z7 t
t=0.1:.1:20*pi;
3 ?3 `* w$ l4 \" s& l- F' m& Oy=sin(t);, d8 _$ h3 \+ c/ G1 ?0 O
subplot(2,1,1)
, r- c" d5 G1 t) i) rplot(t,y)! ?7 V& j5 k, c& j9 S* G2 L9 S3 f* O
subplot(2,1,2)7 z5 W' Q5 j7 d6 }
plot(log2(t),y)5 x3 k6 p+ P, y
第二种,坐标显示6 n9 S7 s2 p! d$ m+ k0 K& @  X
t=0.1:.1:20*pi;# G, h4 M7 u8 q) l
y=sin(t);5 P+ I+ o, W0 e6 r2 a- A
subplot(2,1,1)0 E) w. K) L2 F4 q  u5 v
plot(t,y)1 o: x2 y8 x; W# q) @8 B
subplot(2,1,2)
2 @) ^; b% e6 e9 R2 B! P6 pplot(t,y)6 L" R0 `4 o) g: n8 \0 u
t1=(1:7).^2;
5 a# Z) C1 @' k$ a$ Tset(gca,'Xtick',t1)
7 i2 l! Q& r$ @- V# l% P  Z) j0 d; y  o, W

7 Z$ u1 L" N1 V0 \- D3 U* Q0 V" o. @7 _3 e0 S
52.如何将两个图片同时导入一个界面0 b& C# N4 p/ B, Y. _. v5 y
Q: 我现在需要在同一个界面中导入两个图片, 如果设置图片文件分别为 a.bmp 和 b.bmp,  界
2 c/ J; W; W- X! ^面上是 axes1和 axes2,开始函数中有以下语句:
6 _( t7 V  ?; i4 D7 iimshow(imread('a.bmp'));2 C  `/ h6 x' n- q8 Z/ W8 f- S
imshow(imread('b.bmp'));, l( c/ o. P/ l: y
这样只会在 axes2 中显示 。请问如何加上修改句柄的语句,使 axes1  axes2  都显示图片
1 X, x/ h0 G7 y* @3 |' SA:subpolt(1,2,1);
; Y9 r9 @0 ^3 X! G0 fimshow(imread('a.bmp'));%image也行
1 l6 F! Z% ^8 Gsubplot(1,2,2);
0 ?2 x1 {2 Y" W" |! `" u+ x* b& Rimshow(imread('b.bmp'));
4 R! p: F: M/ O+ J- ~! O4 t3 `3 e: T  @1 z9 A
( ~6 @; [2 h( ^5 o- `* I3 n

2 z0 ?  Z" Y7 w1 _/ [6 Z# L1 A ! T2 W+ |8 P, ^2 r- M
53.如何使 matlab画出来的图和坐标图一样?2 i$ Y+ Q4 `. `! H7 h- N) m8 l- t
Q:使用 plot函数画出来的图,总是在一个方框里面,四边都有刻度,可是我只想要 x 轴和
( e! L% ^( e7 \6 iy轴两个有箭头和刻度的坐标轴,并不需要另外两边,我应该怎么做?& t3 F+ Q' c5 {9 T1 F" V* K# \
A:set(gca,'box','off')
! i# J! F# ?& w' ]0 i0 z1 V. I9 ], U6 V$ U: i

# D# U. m; Z) Y; Z1 f* j2 b8 b' \3 s! z3 w

8 ]- E, p; z! A+ K; D. Y" T2 q3 u3 k- T# C
关于 LISTBOX 与 PUSH BUTTON的问题
# J- C1 x# S9 j; y' E4 [: wQ:要实现:选择 LISTBOX 中任意一项,然后点 PUSH BUTTON后,相对应的执行一个文8 U% E( l  X, z
件。那么 PUSH BUTTON 的 call back该如何编写呢?
% ?$ l& a& H9 H4 o4 pA:callback中你要实现什么就写在一个 m文件中,然后回调这个 m文件就行了。listbox 中! R( ?7 ]7 g' e4 G# }
的选择可以根据 value 的返回值来判断。
# A4 T; a3 h  Q9 T8 t  x0 o# r, e6 \' O. E
  ~6 |2 h' Z" F, h# _

作者: yin123    时间: 2020-3-27 18:16
里面的问题和答案都好详细啊




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2