24小时热门版块排行榜    

查看: 1060  |  回复: 8

lili870113

金虫 (小有名气)

[求助] 急求

为啥我的程序这样算出来是一个具体的数字而不是矩阵
r0=10.18*10^(-6);
h=17.8*10^(-6);
l = 100;
right = 10*10^(-6);
r = linspace(0,right,l);
zz = -h*r/(r0*sqrt(r0^2-r.^2));
theta = 180/pi.*(atan(-zz));

subplot(1,3,2)
plot(rr,theta(1:col));
xlabel('\it r \rm (μm)','fontname','Times New Roman');
ylabel('\it θ(r) \rm (°)','fontname','Times New Roman');
计算出来的时候zz等于一个具体的数字,theta总提示索引超出矩阵维度
回复此楼
开心快乐每一天
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csp101

金虫 (著名写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
lili870113(月只蓝代发): 金币+20, 求助者申请代发金币 2018-08-13 13:38:06
因为你的根号里面r0是一个数啊,你应该用ones(1,length(r))*r0来定义一个矩阵,其内部元素均为r0,这样才可以和r进行矩阵运算,另外,你作图时候的rr没有定义吧

发自小木虫IOS客户端
2楼2018-08-11 10:02:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lili870113

金虫 (小有名气)

引用回帖:
2楼: Originally posted by csp101 at 2018-08-11 10:02:39
因为你的根号里面r0是一个数啊,你应该用ones(1,length(r))*r0来定义一个矩阵,其内部元素均为r0,这样才可以和r进行矩阵运算,另外,你作图时候的rr没有定义吧

您好,请问一下这个ones(1,length(r))*r0是用来定义r0的吗?可以麻烦您说详细点吗?初学者,望见谅、
开心快乐每一天
3楼2018-08-11 10:11:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csp101

金虫 (著名写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
lili870113(月只蓝代发): 金币+10, 求助者申请代发金币 2018-08-13 13:38:45
引用回帖:
3楼: Originally posted by lili870113 at 2018-08-11 10:11:30
您好,请问一下这个ones(1,length(r))*r0是用来定义r0的吗?可以麻烦您说详细点吗?初学者,望见谅、...

是的,定义r0,因为你要用r0和r进行运算,但是r是矩阵,而你原程序中r0是一个数,所以计算的时候MATLAB默认r0只与r中的一个元素(应该是第一个)进行计算了,自然得不到矩阵

发自小木虫IOS客户端
4楼2018-08-11 10:14:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lili870113

金虫 (小有名气)

引用回帖:
4楼: Originally posted by csp101 at 2018-08-11 10:14:18
是的,定义r0,因为你要用r0和r进行运算,但是r是矩阵,而你原程序中r0是一个数,所以计算的时候MATLAB默认r0只与r中的一个元素(应该是第一个)进行计算了,自然得不到矩阵
...

那能麻烦你告诉我一下具体怎么加吗?非常感谢了
开心快乐每一天
5楼2018-08-11 10:15:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csp101

金虫 (著名写手)

引用回帖:
5楼: Originally posted by lili870113 at 2018-08-11 10:15:34
那能麻烦你告诉我一下具体怎么加吗?非常感谢了...

?不是告诉你了吗……把r0定义成一个矩阵

发自小木虫IOS客户端
6楼2018-08-11 10:16:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lili870113

金虫 (小有名气)

引用回帖:
6楼: Originally posted by csp101 at 2018-08-11 10:16:46
?不是告诉你了吗……把r0定义成一个矩阵
...

我定义了,但是还是不对
开心快乐每一天
7楼2018-08-11 10:17:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csp101

金虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
lili870113(月只蓝代发): 金币+20, 求助者申请代发金币 2018-08-13 13:38:22
月只蓝: 应助指数+1 2018-08-13 13:38:33
引用回帖:
7楼: Originally posted by lili870113 at 2018-08-11 10:17:17
我定义了,但是还是不对...

right = 10*10^(-6);
l = 100;
r = linspace(0,right,l);
r0=10.18*10^(-6)*ones(1,length(r));
h=17.8*10^(-6)*ones(1,length(r));
zz = -h.*r./(r0.*sqrt(r0.^2-r.^2));
theta = 180/pi.*(atan(-zz));
subplot(1,3,2)
plot(zz,theta);
xlabel('\it r \rm (μm)','fontname','Times New Roman');
ylabel('\it θ(r) \rm (°)','fontname','Times New Roman');
手机回复不方便,特意上了电脑,除了定义矩阵以外,你没有用点乘,所以才导致的计算得到的只是一个数
8楼2018-08-11 10:29:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lili870113

金虫 (小有名气)

引用回帖:
8楼: Originally posted by csp101 at 2018-08-11 10:29:26
right = 10*10^(-6);
l = 100;
r = linspace(0,right,l);
r0=10.18*10^(-6)*ones(1,length(r));
h=17.8*10^(-6)*ones(1,length(r));
zz = -h.*r./(r0.*sqrt(r0.^2-r.^2));
theta = 180/pi.*(atan(-zz));
su ...

非常感谢,
开心快乐每一天
9楼2018-08-11 10:39:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lili870113 的主题更新
信息提示
请填处理意见