[討論] if的陣列困擾

看板MATLAB作者 (小尖兵)時間14年前 (2012/03/27 22:37), 編輯推噓1(1015)
留言16則, 4人參與, 最新討論串1/1
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

03/27 22:54, , 1F
你h要開空間給他放吧。你這樣做他會一直覆蓋,當然只
03/27 22:54, 1F

03/27 22:55, , 2F
會有一個值啊!
03/27 22:55, 2F

03/27 23:03, , 3F
可是我多寫一行h=zeros(1,100)好像也沒用@@
03/27 23:03, 3F

03/27 23:19, , 4F
你可以寫個for迴圈
03/27 23:19, 4F

03/27 23:20, , 5F
for k=1:100
03/27 23:20, 5F

03/27 23:21, , 6F
if ...
03/27 23:21, 6F

03/27 23:21, , 7F
h(k)=...;
03/27 23:21, 7F

03/27 23:21, , 8F
else
03/27 23:21, 8F

03/27 23:22, , 9F
h=0;
03/27 23:22, 9F

03/27 23:22, , 10F
end end
03/27 23:22, 10F

03/27 23:22, , 11F
錯了,h=0改成h(k)=0;然後抱歉我不會丟水球@@
03/27 23:22, 11F

03/28 00:49, , 12F
改 R=50*ones(length(dsqr));
03/28 00:49, 12F

03/28 00:49, , 13F
和 h=1./(pi*R.^2);
03/28 00:49, 13F

03/28 00:51, , 14F
可是只有在dsqr的每個元素都<=R.^2 h才不是0喔
03/28 00:51, 14F

03/29 09:44, , 15F
x y 是 0~20分100個點嗎?
03/29 09:44, 15F

03/29 09:46, , 16F
是的話 dsqr最大值只有800 每個元素都小於 R^2喔
03/29 09:46, 16F
文章代碼(AID): #1FST2Uly (MATLAB)