EDA365电子论坛网
标题:
大神给大家总结的一些常见Matlab问题
[打印本页]
作者:
mytomorrow
时间:
2020-3-27 11:29
标题:
大神给大家总结的一些常见Matlab问题
! l4 n+ n# d! }6 e- ?4 l U
Q:如何在给定句柄的 axis 里绘图?
5 N: d5 J$ m0 I9 r, u8 p* u8 J( M/ x
A:plot(data,'parent',haxis);
4 k* R/ d- m4 ^2 R8 X- h
或者
: v9 ?! ?4 `! G4 N
hbar=bar(data);
: t- w* j; s [' J6 E, V% i
set(hbar,'parent',haxis);
! S! x/ C( I+ v1 u* u' c
) l' F5 a |1 S. p
' r0 A: f9 v- k. y7 N6 r
Q:Matlab 中如何作线性拟合/线性回归/多元线性回归?
# I6 q0 t; q' m' J- b
A:何作线性拟合是用 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- i
p=polyfit(x,y,1);
, b* i. J Q6 m% G' L
p(1)为斜率 a,p(2)为截距 b
0 _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 z
A=|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 P
A:对于一维、二维、三维规则数据点阵使用 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" m
your_code;
! E1 ]; U/ w+ K
toc
. L1 C7 ?( Q) d, O; S& y- m1 [
或者使用:
. j) }4 @1 U" T, A9 U
t=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; u
pause/clear/disp 等实现的,还有一些窗口资源可以使用:
9 Y! J% X1 S- A- q
uigetfile, uiputfile, uiwait, uisetcolor, isetfont, uiopen, uisave
3 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 C
Q: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& T
A: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 t
3 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+ j
x=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- M
A:ndims(A)返回 A的维数
$ C" z/ t2 q6 j" e. B9 h
size(A)返回 A各个维的最大元素个数
( A/ V4 I" V- Q, V4 D. L* m
length(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 d
Q:Matlab 如何产生均匀分布的白噪声?
! F! l( A# a/ t' s- @
A:help rand 均匀分布百噪声
8 l3 e* F5 ]8 ?" Z9 X
help 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 z
A: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 x
A:可以使用 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 O
Q:matlab 程序运行时如何中止
4 d& o$ j4 @& L8 D2 j2 S0 F$ t
A:快捷键 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 F
9 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 f
Q:那位高手能否讲一下 varargin 的具体用法。
0 ~+ o3 \! u* j2 u4 l1 ~' f& N
A: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,l
2 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 Z
1 Q5 }5 B7 ~& F) X9 j# K- m `9 Z' Z
119.使用''和 sym 生成字符表达式的区别
2 c& `! g7 s# a5 B2 n8 Z! x
Q:例如:
& 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) @# k
A:当然,一个是字符型的一个是符号型的
; 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 i
Q:一目录下有一组数据文件,文件名为 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( u
A: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 K
end
2 g( r' i$ R: @: t2 W% y# l. U
Q:好在文件名是 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, y
x2='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$ C
8 [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 n
Q:如何用 set 改变 gca 变量中 xtick 和ytick 的属性值
: Z% |. }7 s" b+ `/ Y
A: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 D
A:h = waitbar(0,'Please wait...');
! M" S; K. O5 n% J
set(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+ O
y=i+1:i+100;
" W4 x* f. W; r6 X
plot(x,y)
* N) D: A+ Z0 J7 n7 V% f1 K
close 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+ D
6 ^- u2 v1 E& `) Z6 v1 C: ]
Q:在 MATLAB 中如何画灰度图?
x: Q1 w0 I9 d& e* P% S
A:如 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, C
A:一个小例子
4 r9 K. l3 ]# B
hold on;
* U7 Q6 y$ a& ~0 H) m/ E- Z
plot([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 r
plot([0,1],[0,1]);
6 D! R7 E" J4 }0 }( g& ~# a" B
box off
8 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# l
1 a) k! T1 c# ?+ s% v! D
Q:Matlab 怎么画三维数据的灰度图?
- A5 C. f. M* D$ g0 K& t# Y! E2 u
A:[xi,yi]=meshgrid(x,y);
. z; Z& h5 m1 e H9 s# j% h
pcolor(xi,yi,zi);colormap('gray');
2 F+ i; u+ o* t5 i/ ^4 v
colormap(flipud(get(gcf,'colormap')));
( v& T g% C$ [+ g
meshgrid 的时候分的细一些让他变得精细一些
* q3 l' N3 i) a
3 ^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( \! b
4 `$ 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" o
A:plot(1:10)
& n1 _' C- `* P
set(gca,'xdir','reverse')
3 \$ }8 K3 e8 L Z! r! g: Z
set(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 M
2 |+ 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& r
n:要点击的次数
6 m! m: f4 U5 G2 p0 S6 w
x,y分别为点击点的 x,y坐标,当 n>1时,x,y为向量
( A V0 ?& @% H* P' O# ^, D/ h% w
8 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% L
theta=linspace(0, 2*pi);
/ v2 _, F4 q6 \2 g# O6 M' n
r=ones(1,100);
) \# x4 @, k3 R
polar(theta, r);
4 |) `5 s5 o0 j( U# Y; W+ Y: A- G
9 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" \) y
Q:我画了一个二维图,可是 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+ m
A:用 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& O
y=sin(t);
, d8 _$ h3 \+ c/ G1 ?0 O
subplot(2,1,1)
, r- c" d5 G1 t) i) r
plot(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 p
plot(t,y)
6 L" R0 `4 o) g: n8 \0 u
t1=(1:7).^2;
5 a# Z) C1 @' k$ a$ T
set(gca,'Xtick',t1)
7 i2 l! Q& r$ @- V# l% P
Z) j0 d; y o, W
7 Z$ u1 L" N1 V0 \- D
3 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 i
imshow(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 |' S
A:subpolt(1,2,1);
; Y9 r9 @0 ^3 X! G0 f
imshow(imread('a.bmp'));%image也行
1 l6 F! Z% ^8 G
subplot(1,2,2);
0 ?2 x1 {2 Y" W" |! `" u+ x* b& R
imshow(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 i
y轴两个有箭头和刻度的坐标轴,并不需要另外两边,我应该怎么做?
& t3 F+ Q' c5 {9 T1 F" V* K# \
A:set(gca,'box','off')
! i# J! F# ?& w' ]0 i
0 z1 V. I9 ], U6 V$ U: i
# D# U. m; Z) Y; Z
1 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 [: w
Q:要实现:选择 LISTBOX 中任意一项,然后点 PUSH BUTTON后,相对应的执行一个文
8 U% E( l X, z
件。那么 PUSH BUTTON 的 call back该如何编写呢?
% ?$ l& a& H9 H4 o4 p
A: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