PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
MATLAB
[討論] 如何打出a = 2 8 32 128 512
作者:
dxdy
(=ρdρdφ)
2019-02-06 16:44:48
for n=1:2:10
a(n)=2^n
end
結果顯示
a = 2 0 8 0 32 0 128 0 512
要如何把0消掉?
我試了
for n=1:5
a(n)=2^(2*n-1)
end
結果顯示
a = 2 8 32 128 512 0 128 0 512
為什麼512後面會跑出0 128 0 512?
作者:
rex0707
(我就是我)
2019-02-06 17:51:00
是不是因為你把這兩段code放在一起 所以a向量的大小跟上面的一樣 而且後面幾個元素的值沒變
作者:
book5601
(蒼瀾野獸)
2019-02-06 20:04:00
先回覆陣列內有零的問題,我記得matlab不用在變數後面括弧也會自己儲存成陣列。所以你只要把a(n)的(n)整個刪除,再run一次應該就會有。第二個方法是直接把數值串聯,a=[a 2^n]; 這是matlab才有的寫法
作者:
profyang
(prof)
2019-02-06 21:20:00
請記得先用zeors之類的給定a的size...程式前面最好加個clear; clc;之類的...至少我是習慣這樣做的上面打錯 zeros
作者:
sppmg
(sppmg)
2019-02-06 23:43:00
插入0是因為陣列初始值為0,你第一個迴圈n=3時,陣列(2)未指定即為0。第二個迴圈問題則是因為剛剛的a沒清除,所以(5)之後都是舊的值。還有就是MATLAB在指定元素超出範圍時會即時配置一個新的陣列,然後再複製內容過去。所以a(100)=0是一個zeros之外的預配置記憶體的方法。(據說比較快)a=[a, 2*n+1] 很方便,但效能較差,因為每次迴圈都要花費配置記憶體+複製內容的時間。
作者:
sherees
(ShaunTheSheep)
2019-02-08 16:02:00
n = 1:10; a = 2 ^ nn = 1:2:10才對
作者:
bcpsowen
(pigbull)
2019-02-09 17:53:00
n=1:2:10a=2.^n矩陣運算比迴圈有效率 點乘蠻好用的
作者:
tn00364361
(小氵斿)
2019-02-12 00:01:00
.^正解,速度快很多
繼續閱讀
[討論] 如何在直角坐標中加數字?
g318
MCR-ALS
wer00168
[討論] fuzzy logic box問題
qqqq99369
[討論] 如何在function中帶入計算完成的類神經
justoneshoot
[討論] 如何使用我train好的net?
g318
[其他] 如何讓Json檔轉換成MAT?
wang19980531
[討論] 如何使用迴圈概念載入多個table
andy850715
[討論] 利用roi座標製作mask
micky116
[討論] MATLAB程式%.2f被當成註解如何解決?
evolution907
[繪圖] 繪製出原子力場圖
karco
Links
booklink
Contact Us: admin [ a t ] ucptt.com