看板 MATLAB 關於我們 聯絡資訊
N=300; R=50; x=linspace(0,20,100); y=linspace(0,20,100); dsqr=x.^2+y.^2; if dsqr<=R^2 h=1/(pi*R^2); else h=0; end 我的dsqr是一個有100個數字的陣列 h應該也會有一百個值呀 可是他只有一個數字... 不知道問題出在哪 請高手解惑QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.14.10
bob10590213:你h要開空間給他放吧。你這樣做他會一直覆蓋,當然只 03/27 22:54
bob10590213:會有一個值啊! 03/27 22:55
myolddays:可是我多寫一行h=zeros(1,100)好像也沒用@@ 03/27 23:03
bob10590213:你可以寫個for迴圈 03/27 23:19
bob10590213:for k=1:100 03/27 23:20
bob10590213:if ... 03/27 23:21
bob10590213:h(k)=...; 03/27 23:21
bob10590213:else 03/27 23:21
bob10590213:h=0; 03/27 23:22
bob10590213:end end 03/27 23:22
bob10590213:錯了,h=0改成h(k)=0;然後抱歉我不會丟水球@@ 03/27 23:22
shomingchang:改 R=50*ones(length(dsqr)); 03/28 00:49
shomingchang:和 h=1./(pi*R.^2); 03/28 00:49
shomingchang:可是只有在dsqr的每個元素都<=R.^2 h才不是0喔 03/28 00:51
cmjer:x y 是 0~20分100個點嗎? 03/29 09:44
cmjer:是的話 dsqr最大值只有800 每個元素都小於 R^2喔 03/29 09:46