第4章 Python 數字圖像處理(DIP) - 頻率域濾波2 - 復數、傅里葉級數、連續單變量函數的傅里葉變換、卷積

目錄

    • 基本概念
      • 復數
      • 傅里葉級數
      • 沖激函數及其取樣(篩選)性質
      • 連續單變量函數的傅里葉變換
      • 卷積

基本概念

復數

復數CCC的定義為

C=R+jI(4.3)C = R + jI \tag{4.3}C=R+jI(4.3)

R,IR,IR,I為實數,RRR是實部,III是虛部,j=?1j = \sqrt{-1}j=?1?。復數的共軛表示為C?C^*C?

C?=R?jI(4.4)C^* = R - jI \tag{4.4}C?=R?jI(4.4)

從幾何角度來看,復數可視為平面(稱為復平面)上的一個點,其橫坐標是實軸,縱坐標是虛軸,也就是說R+jIR+jIR+jI是得平面直角坐標系中的點(R,I)(R,I)(R,I)

極坐標表示復數

C=∣C∣(cosθ+jsinθ)(4.5)C = |C|(\text{cos}\theta + \text{jsin}\theta) \tag{4.5}C=C(cosθ+jsinθ)(4.5)
∣C∣=R2+I2|C|=\sqrt{R^2 + I^2}C=R2+I2?是從復平面的原點延伸到點(R,I)(R,I)(R,I)的向量長度,θ\thetaθ是該向量與實軸的夾角。

使用歐拉公式
ejθ=cosθ+jsinθ(4.6)e^{j\theta} = \text{cos}\theta + \text{jsin}\theta \tag{4.6}ejθ=cosθ+jsinθ(4.6)

可以給坐極坐標的復數表示為
C=∣C∣ejθ(4.7)C = |C|e^{j\theta} \tag{4.7}C=Cejθ(4.7)

復函數:
F(u)=R(u)+jI(u)F(u) = R(u) + jI(u)F(u)=R(u)+jI(u)
F?(u)=R(u)?jI(u)F^*(u) = R(u) - jI(u)F?(u)=R(u)?jI(u)
幅值是
∣F(u)∣=R(u)2+I(u)2|F(u)| = \sqrt{R(u)^2 + I(u)^2}F(u)=R(u)2+I(u)2?

a = np.complex(1 + 2j)
radian = np.arctan2(a.imag, a.real)
radian
1.1071487177940904
degree = np.rad2deg(radian)
degree
63.43494882292201

傅里葉級數

周期為TTT的連續變量ttt的周期函數f(t)f(t)f(t),可表示為乘以適當系數的正弦函數和余弦函數之和
f(t)=∑n=?∞∞cnej2πnTt(4.8)f(t) = \sum_{n=-\infty}^{\infty} c_n e^{j\frac{2\pi n}{T}t} \tag{4.8}f(t)=n=??cn?ejT2πn?t(4.8)

cn=1T∫?T/2T/2f(t)e?j2πnTt(4.9)c_n = \frac{1}{T}\int_{-T/2}^{T/2}f(t)e^{-j\frac{2\pi n}{T}t} \tag{4.9}cn?=T1??T/2T/2?f(t)e?jT2πn?t(4.9)

沖激函數及其取樣(篩選)性質

連續變量tttt=0t=0t=0處的單位沖激表示為δ(t)\delta(t)δ(t),定義是
δ(t)={∞,t=00,t≠0(4.10)\delta(t) =\begin{cases} \infty, & t=0 \\ 0, & t \neq 0 \end{cases} \tag{4.10}δ(t)={,0,?t=0t?=0?(4.10)
它被限制為滿足恒等式
∫?∞∞δ(t)dt=1(4.11)\int_{-\infty}^{\infty}\delta(t)dt= 1 \tag{4.11}??δ(t)dt=1(4.11)

自然地,將ttt解釋為時間時,沖激就可視為幅度無限、持續時間為0、具有單位面積的尖峰信息。沖激具有關于積分的所謂取樣性質

∫?∞∞f(t)δ(t)dt=f(0)(4.12)\int_{-\infty}^{\infty} f(t) \delta(t)dt= f(0) \tag{4.12}??f(t)δ(t)dt=f(0)(4.12)

沖激
沖激并不是通常意義上的函數,更準確的名稱是分布或廣義函數。

任意一點t0t_0t0?的取樣性質為:
∫?∞∞f(t)δ(t?t0)dt=f(t0)(4.13)\int_{-\infty}^{\infty} f(t) \delta(t - t_0)dt= f(t_0) \tag{4.13}??f(t)δ(t?t0?)dt=f(t0?)(4.13)

例如: 若f(t)=cos(t)f(t) = \text{cos}(t)f(t)=cos(t),則使用沖激δ(t?π)\delta(t-\pi)δ(t?π)得到結果f(π)=cos(π)=?1f(\pi) = cos(\pi)=-1f(π)=cos(π)=?1

沖激串KaTeX parse error: \tag works only in display equations

離散沖激定義為
δ(x)={1,x=00,x≠0(4.15)\delta(x) = \begin{cases} 1, & x = 0 \\0, & x \neq 0 \end{cases} \tag{4.15}δ(x)={1,0,?x=0x?=0?(4.15)
∑?∞∞δ(x)=1(4.16)\sum_{-\infty}^{\infty}\delta(x)= 1 \tag{4.16}??δ(x)=1(4.16)
∑?∞∞f(x)δ(x)=f(0)(4.17)\sum_{-\infty}^{\infty} f(x) \delta(x)= f(0) \tag{4.17}??f(x)δ(x)=f(0)(4.17)
∑?∞∞f(x)δ(x?x0)dt=f(x0)(4.18)\sum_{-\infty}^{\infty} f(x) \delta(x - x_0)dt= f(x_0) \tag{4.18}??f(x)δ(x?x0?)dt=f(x0?)(4.18)

def impulse(x, x0):return np.piecewise(x, [x==x0, x!=x0], [1, 0])
# 按定義寫的,不知道是否正確,如不正確,請指出,感謝,只做展示
x = np.arange(10)
plt.stem(x, impulse(x, 5), )
plt.show()

在這里插入圖片描述

def impulse_serial(x):s = np.ones_like(x)return s
# 只做展示
x = np.arange(10)
plt.stem(impulse_serial(x))
plt.show()

在這里插入圖片描述

連續單變量函數的傅里葉變換

傅里葉變換對

連續變量ttt的連續函數f(t)f(t)f(t)的傅里葉變換由J{f(t)}\mathfrak{J}\{f(t)\}J{f(t)}表示,定義為
J{f(t)}=∫?∞∞f(t)e?j2πμtdt(4.19)\mathfrak{J}\{f(t)\} = \int_{-\infty}^{\infty} f(t) e^{-j2\pi\mu t}dt \tag{4.19}J{f(t)}=??f(t)e?j2πμtdt(4.19)
J{f(t)}=F(μ)\mathfrak{J}\{f(t)\} = F(\mu)J{f(t)}=F(μ)
所以有
F(μ)=∫?∞∞f(t)e?j2πμtdt(4.20)F(\mu) = \int_{-\infty}^{\infty} f(t) e^{-j2\pi\mu t}dt \tag{4.20}F(μ)=??f(t)e?j2πμtdt(4.20)
反變換:
f(t)=∫?∞∞F(μ)e?j2πμtdμ(4.21)f(t) = \int_{-\infty}^{\infty} F(\mu) e^{-j2\pi\mu t}d\mu \tag{4.21}f(t)=??F(μ)e?j2πμtdμ(4.21)

通常表示為f(t)?F(μ)f(t) \Leftrightarrow F(\mu)f(t)?F(μ)

使用歐拉公式,可以寫為
F(μ)=∫?∞∞f(t)[cos(2πμt)?jsin(2πμt)]dt(4.22)F(\mu) = \int_{-\infty}^{\infty} f(t) [\text{cos}(2\pi \mu t) - \text{jsin}(2\pi \mu t)]dt \tag{4.22}F(μ)=??f(t)[cos(2πμt)?jsin(2πμt)]dt(4.22)

傅里葉變換是f(t)f(t)f(t)乘以正弦函數的展開式, 其中正弦函數的頻率是由μ\muμ值決定。因此積分后留下的唯一變量是頻率,因此,我們說傅里葉變換域是頻率域。

盒式函數的傅里葉變換

F(μ)=∫?∞∞f(t)e?j2πμtdt=∫?W/2W/2f(t)Ae?j2πμtdt=?Aj2πμ[e?j2πμt]?W/2W/2=?Aj2πμ[e?jπμW?ejπμW]=Aj2πμ[ejπμW?e?jπμW]=AWsin(πμW)(πμW)\begin{aligned} F(\mu) & = \int_{-\infty}^{\infty} f(t) e^{-j2\pi\mu t}dt = \int_{-W/2}^{W/2} f(t) A e^{-j2\pi\mu t}dt\\ & = \frac{-A}{j2\pi\mu}[e^{-j2\pi\mu t}]_{-W/2}^{W/2} = \frac{-A}{j2\pi\mu}[e^{-j\pi\mu W} - e^{j\pi\mu W}]\\ & = \frac{A}{j2\pi\mu}[e^{j\pi\mu W} - e^{-j\pi\mu W}] \\ & = AW \frac{sin(\pi \mu W)}{(\pi \mu W)} \\ \end{aligned}F(μ)?=??f(t)e?j2πμtdt=?W/2W/2?f(t)Ae?j2πμtdt=j2πμ?A?[e?j2πμt]?W/2W/2?=j2πμ?A?[e?jπμW?ejπμW]=j2πμA?[ejπμW?e?jπμW]=AW(πμW)sin(πμW)??

最后的結果是sinc\text{sinc}sinc函數
sinc(m)=sin(πm)(πm)(4.23)\text{sinc}(m) = \frac{\text{sin}(\pi m)}{(\pi m)} \tag{4.23}sinc(m)=(πm)sin(πm)?(4.23)

通常傅里葉變換中包含復數項,這是為了顯示變換的幅值(一個實量)的約定。這個幅值稱為傅里葉頻譜或頻譜
∣F(μ)∣=AW∣sin(πμW)(πμW)∣|F(\mu)| = AW \bigg|\frac{sin(\pi \mu W)}{(\pi \mu W)}\bigg|F(μ)=AW?(πμW)sin(πμW)??

def box_function(x, w):w_2 = w / 2y = np.where(x, x > -w_2, 0)y = np.where(x < w_2, y, 0)return y
import mpl_toolkits.axisartist as axisartist
def setup_axes(fig, rect):ax = axisartist.SubplotZero(fig, rect)fig.add_axes(ax)for direction in ["xzero", "yzero"]:# adds arrows at the ends of each axisax.axis[direction].set_axisline_style("-|>")# adds X and Y-axis from the originax.axis[direction].set_visible(True)for direction in ["left", "right", "bottom", "top"]:# hides bordersax.axis[direction].set_visible(False)return ax
# 盒式函數的傅里葉變換
x = np.arange(-5, 5, 0.1)
y = box_function(x, 6)fig = plt.figure(figsize=(15, 5))
ax_1 = setup_axes(fig, 131)
ax_1.plot(x, y), ax_1.set_title('f(t)', loc='center', y=1.05), ax_1.set_ylim([0, 2]), ax_1.set_yticks([])f_u = np.sinc(x)
ax_2 = setup_axes(fig, 132)
ax_2.plot(x, f_u), ax_2.set_title('F(u)', loc='center', y=1.05), ax_2.set_yticks([]), #ax_2.set_ylim([-1, 2]),f_u_absolute = abs(f_u)
ax_3 = setup_axes(fig, 133)
ax_3.plot(x, f_u_absolute), ax_3.set_title('|F(u)|', loc='center', y=1.05), ax_3.set_yticks([]), #ax_3.set_ylim([-1, 2]),plt.tight_layout()
plt.show()

在這里插入圖片描述

沖激和沖激串的傅里葉變換

J{δ(t)}=F(μ)=∫?∞∞δ(t)e?j2πμtdt=∫?∞∞e?j2πμtδ(t)dt=e?j2πμ0=e0=1\begin{aligned} \mathfrak{J}\{\delta(t)\} & = F(\mu) = \int_{-\infty}^{\infty} \delta(t) e^{-j2\pi\mu t}dt \\ & = \int_{-\infty}^{\infty} e^{-j2\pi\mu t} \delta(t)dt \\ & = e^{-j2\pi\mu_0} \\ & = e^0 = 1 \end{aligned}J{δ(t)}?=F(μ)=??δ(t)e?j2πμtdt=??e?j2πμtδ(t)dt=e?j2πμ0?=e0=1?

J{δ(t?t0)}=F(μ)=∫?∞∞δ(t?t0)e?j2πμtdt=∫?∞∞e?j2πμtδ(t?t0)dt=e?j2πμt0\begin{aligned} \mathfrak{J}\{\delta(t - t_0)\} & = F(\mu) = \int_{-\infty}^{\infty} \delta(t - t_0) e^{-j2\pi\mu t}dt \\ & = \int_{-\infty}^{\infty} e^{-j2\pi\mu t} \delta(t - t_0)dt \\ & = e^{-j2\pi\mu t_0} \\ \end{aligned}J{δ(t?t0?)}?=F(μ)=??δ(t?t0?)e?j2πμtdt=??e?j2πμtδ(t?t0?)dt=e?j2πμt0??

沖激串的傅里葉變換

S(μ)=J{SΔT(t)}=J{1Δ∑n=?∞∞ej2πnΔTt}=1ΔTJ{∑n=?∞∞ej2πnΔTt}=1ΔT∑n=?∞∞δ(μ?nΔT)\begin{aligned} S(\mu) & = \mathfrak{J}\{S_{\Delta T}(t)\} = \mathfrak{J}\{\frac{1}{\Delta } \sum_{n=-\infty}^{\infty} e^{j\frac{2\pi n}{\Delta T}t}\} \\ & = \frac{1}{\Delta T} \mathfrak{J}\{\sum_{n=-\infty}^{\infty} e^{j\frac{2\pi n}{\Delta T}t}\} \\ & = \frac{1}{\Delta T} \sum_{n=-\infty}^{\infty} \delta(\mu - \frac{n}{\Delta T}) \\ \end{aligned}S(μ)?=J{SΔT?(t)}=J{Δ1?n=??ejΔT2πn?t}=ΔT1?J{n=??ejΔT2πn?t}=ΔT1?n=??δ(μ?ΔTn?)?

卷積

(f?h)(t)=∫?∞∞f(τ)h(t?τ)dτ(4.24)(f\star h)(t) = \int_{-\infty}^{\infty} f(\tau) h(t - \tau) d\tau \tag{4.24}(f?h)(t)=??f(τ)h(t?τ)dτ(4.24)

J{(f?h)(t)}=∫?∞∞[∫?∞∞f(τ)h(t?τ)dτ]e?j2πμtdt=∫?∞∞f(τ)[∫?∞∞h(t?τ)e?j2πμtdt]dτ=H(μ)∫?∞∞f(τ)e?j2πμτdτ=H(μ)F(μ)=(H?F)(μ)\begin{aligned} \mathfrak{J}\{(f \star h)(t) \} & = \int_{-\infty}^{\infty} \bigg[\int_{-\infty}^{\infty} f(\tau) h(t - \tau) d\tau \bigg] e^{-j2\pi \mu t} dt\\ & = \int_{-\infty}^{\infty} f(\tau) \bigg[\int_{-\infty}^{\infty} h(t - \tau) e^{-j2\pi \mu t} dt\bigg] d\tau \\ & = H(\mu) \int_{-\infty}^{\infty} f(\tau) e^{-j2\pi \mu \tau} d\tau \\ & = H(\mu)F(\mu) = (H \bullet F)(\mu) \end{aligned}J{(f?h)(t)}?=??[??f(τ)h(t?τ)dτ]e?j2πμtdt=??f(τ)[??h(t?τ)e?j2πμtdt]dτ=H(μ)??f(τ)e?j2πμτdτ=H(μ)F(μ)=(H?F)(μ)?

  • 傅里葉正變換
    (f?h)(t)?(H?F)(μ)(4.25)(f\star h)(t) \Leftrightarrow (H \bullet F)(\mu) \tag{4.25}(f?h)(t)?(H?F)(μ)(4.25)

  • 傅里葉反變換
    (f?h)(t)?(H?F)(μ)(4.26)(f\bullet h)(t) \Leftrightarrow (H \star F)(\mu) \tag{4.26}(f?h)(t)?(H?F)(μ)(4.26)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260741.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260741.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260741.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

不要迷失在技術的海洋中【轉】

轉自http://www.cnblogs.com/lovecherry/archive/2007/10/28/940555.html 不要迷失在技術的海洋中 技術就好像一片汪洋大海&#xff0c;越深入越望不到邊際。就拿自己的體驗來說吧&#xff0c;2000年的時候在學校搞ASP&#xff0c;覺得網頁開發就是這么簡單&#xff0c;把數據庫…

使用代碼設置Item級的權限(權限總結1)

itle in english:set Item Level Permission for SharePoint (MOSS/WSS) List/Document Library Programmatically 有些時候&#xff0c;我們需要為文檔庫里面某個文件設置特殊的權限&#xff0c;這個權限不繼承自列表權限&#xff0c;當然最簡單的最好是再創建一個列表&#…

echarts 4.0.4怎么下載_怎么讓ECharts的提示框tooltip自動輪播?

1. 怎么讓ECharts的提示框tooltip自動輪播?在用ECharts做大屏或者可視化展示項目的時候&#xff0c;讓提示框tooltip自動輪播是比較常見的需求&#xff0c;給大家推薦一個插件叫echarts-tooltip-auto-show,名字是有點長&#xff0c;但是挺好用的。在hover顯示tooltip之后&…

[React Native]高度自增長的TextInput組件

之前我們學習了從零學React Native之11 TextInput了解了TextInput相關的屬性。 在開發中,我們有時候有這樣的需求, 希望輸入區域的高度隨著輸入內容的長度而增長, 如下&#xff1a; 這時候我們需要自定義一個組件&#xff1a; 在項目中創建AutoExpandingTextInput.js import …

網站開啟Gzip壓縮-apache

找到并打開apache/conf目錄中的httpd.conf文件 httpd.conf中打開deflate_Module和headers_Module模塊&#xff0c;具體做法為將 如下兩句前面的#去掉&#xff1a;LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so 3.配置文…

第4章 Python 數字圖像處理(DIP) - 頻率域濾波3 - 取樣和取樣函數的傅里葉變換、混疊

目錄取樣和取樣函數的傅里葉變換取樣取樣后的函數的傅里葉變換取樣定理混疊由取樣后的數據重建&#xff08;復原&#xff09;函數取樣和取樣函數的傅里葉變換 取樣 fˉ(t)f(t)sΔT(t)∑n?∞∞f(t)δ(t?nΔT)(4.27)\bar f(t) f(t)s_{\Delta T}(t) \sum_{n-\infty}^{\infty}…

[轉]Android開發,實現可多選的圖片ListView,便于批量操作

本文轉自&#xff1a;http://www.cnblogs.com/gergulo/archive/2011/06/14/2080629.html 之前項目需要實現一個可多選的圖片列表&#xff0c;用戶選中一到多張圖片后&#xff0c;批量上傳。但是網上有可多選普通列表的代碼、也有單純圖片列表的代碼&#xff0c;卻沒有兩者合并的…

個人信息安全影響評估指南_發布 | 網絡安全標準實踐指南—移動互聯網應用程序(App)收集使用個人信息自評估指南...

關于發布《網絡安全標準實踐指南—移動互聯網應用程序(App)收集使用個人信息自評估指南》的通知信安秘字[2020] 40號各有關單位&#xff1a;為落實《網絡安全法》相關要求&#xff0c;圍繞中央網信辦、工信部、公安部、市場監管總局聯合制定的《App違法違規收集使用個人信息行為…

Go的50度灰:Golang新開發者要注意的陷阱和常見錯誤

Go的50度灰&#xff1a;Golang新開發者要注意的陷阱和常見錯誤 http://colobu.com/2015/09/07/gotchas-and-common-mistakes-in-go-golang/

android intent和intent action大全

不管是頁面牽轉&#xff0c;還是傳遞數據&#xff0c;或是調用外部程序&#xff0c;系統功能都要用到intent。 在做了一些intent的例子之后&#xff0c;整理了一下intent&#xff0c;希望對大家有用。 由于intent內容太多&#xff0c;不可能真的寫全&#xff0c;難免會有遺落&a…

第4章 Python 數字圖像處理(DIP) - 頻率域濾波4 - 單變量的離散傅里葉變換DFT

目錄標題單變量的離散傅里葉變換由取樣后的函數的連續變換得到DFT取樣和頻率間隔的關系單變量的離散傅里葉變換 由取樣后的函數的連續變換得到DFT 對原函數的變換取樣后的業的發展的變換F~(μ)\tilde F(\mu)F~(μ)&#xff0c;但未給出取樣后的函數f~(t)\tilde f(t)f~?(t)的…

在線生成 CSS3 的工具

1) CSS Creator – Layout Design 2) CSS Menu Maker 3) CSS3 Please 4) CSS3 Generator 5) CSS Border Radius 6) CSS3 Gradient Generator 7) CSS3 Button Generator 8 ) Mike Plate’s CSS3 Playground 9) Border Image Generator 10) CSS3 WRAP 11) Button Maker 12) Font…

python image 轉成字節_就是這么牛!三行Python代碼,讓數據處理速度提高2到6倍

本文可以教你僅使用 3 行代碼&#xff0c;大大加快數據預處理的速度。Python 是機器學習領域內的首選編程語言&#xff0c;它易于使用&#xff0c;也有很多出色的庫來幫助你更快處理數據。但當我們面臨大量數據時&#xff0c;一些問題就會顯現……在默認情況下&#xff0c;Pyth…

sessionStorage 、localStorage 和 cookie 之間的區別(轉)

essionStorage 、localStorage 和 cookie 之間的區別(轉) 2012-05-08 14:29:19| 分類&#xff1a; HTML5CSS3WEBAPP|舉報|字號 訂閱 sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的&#xff0c;可以方便的在web請求之間保存數據。有了本地數據&#xff0c;…

刪除文件夾里的圖片,打印刪除日志

1 #region 僵尸文件夾中的文件如果不在活文件列表中&#xff0c;刪之2 List<string> deadfile new List<string>();3 foreach(string str in lstZombileDic)4 {5 if(Direct…

第4章 Python 數字圖像處理(DIP) - 頻率域濾波5 - 二變量函數的傅里葉變換、圖像中的混疊、二維離散傅里葉變換及其反變換

目錄二變量函數的傅里葉變換二維沖激及其取樣性質二維連續傅里葉變換對二維取樣和二維取樣定理圖像中的混疊二維離散傅里葉變換及其反變換二變量函數的傅里葉變換 二維沖激及其取樣性質 兩個連續變量的沖激函數定義為&#xff1a; δ(t,z){1,tz00,others(4.52)\delta(t, z) …

巧用VC工程下的rc文件

巧用VC工程下的rc文件(發表時間: 2008-12-30 17:20:00) 【評論】 【打印】 【字體&#xff1a;大 中 小】 本文鏈接&#xff1a;http://blog.pfan.cn/miaowei/40117.html 復制鏈接 分享到&#xff1a; 0標簽:VC rc文件 資源文件 窗口尺寸設置 添加資源 縱觀真個的VC工程&a…

藍橋杯 參考題目 黃金隊列(水題)

黃金分割數0.618與美學有重要的關系。舞臺上報幕員所站的位置大約就是舞臺寬度的0.618處&#xff0c;墻上的畫像一般也掛在房間高度的0.618處&#xff0c;甚至股票的波動據說也能找到0.618的影子.... 黃金分割數是個無理數&#xff0c;也就是無法表示為兩個整數的比值。0.618只…

QC4+充電協議_一文看懂各家充電協議!總算徹底理清了

五一小長假馬上就要到了&#xff0c;雖說今年的五一小長假是一個長達5天的“Plus”版小長假&#xff0c;但是受到疫情的影響&#xff0c;大多數人還是選擇了在家中度過這個假期。既然說到了宅在家里度過這個假期&#xff0c;那么很多人都會選擇讓手機來陪伴自己度過。雖然最近幾…

vi編輯器選項

Vi編輯器有一些選項設置可以幫助人們更好的使用。 在vi中選項分為兩種: 1、 開關選項&#xff0c;如果要打開這類選項就使用ex命令——&#xff1a;set 選項&#xff1b;如果要關閉這類選項就是用ex命令——&#xff1a;set no選項&#xff08;注意no和選項之間沒有空格&…