作者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