作者myolddays (小尖兵)
看板MATLAB
標題[討論] if的陣列困擾
時間Tue Mar 27 22:37:16 2012
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
1F:→ bob10590213:你h要開空間給他放吧。你這樣做他會一直覆蓋,當然只 03/27 22:54
2F:→ bob10590213:會有一個值啊! 03/27 22:55
3F:→ myolddays:可是我多寫一行h=zeros(1,100)好像也沒用@@ 03/27 23:03
4F:推 bob10590213:你可以寫個for迴圈 03/27 23:19
5F:→ bob10590213:for k=1:100 03/27 23:20
6F:→ bob10590213:if ... 03/27 23:21
7F:→ bob10590213:h(k)=...; 03/27 23:21
8F:→ bob10590213:else 03/27 23:21
9F:→ bob10590213:h=0; 03/27 23:22
10F:→ bob10590213:end end 03/27 23:22
11F:→ bob10590213:錯了,h=0改成h(k)=0;然後抱歉我不會丟水球@@ 03/27 23:22
12F:→ shomingchang:改 R=50*ones(length(dsqr)); 03/28 00:49
13F:→ shomingchang:和 h=1./(pi*R.^2); 03/28 00:49
14F:→ shomingchang:可是只有在dsqr的每個元素都<=R.^2 h才不是0喔 03/28 00:51
15F:→ cmjer:x y 是 0~20分100個點嗎? 03/29 09:44
16F:→ cmjer:是的話 dsqr最大值只有800 每個元素都小於 R^2喔 03/29 09:46