matlab里的double及矩阵下标

double(tline(1))==32这里的double表达的是什么意思?还有一个问题:forii=1:Bforjj=1:DA(jj,ii)=5;endend这里的BD... double(tline(1))==32 这里的double表达的是什么意思?

还有一个问题:
for ii=1:B
for jj=1:D
A(jj,ii)=5;
end
end
这里的B D不为整数的话,可以运行

for i=1:4
for j=1:4
AAA(jj,ii)=U(4,B);
end
end
但这个程序的B不是整数却提示Subscript indices must either be real positive integers or logicals.

是什么原因
展开
 我来答
有空飘过的
推荐于2018-04-12 · TA获得超过4945个赞
知道大有可为答主
回答量:1448
采纳率:50%
帮助的人:1873万
展开全部
double(x)是吧x变量转换成双精度型变量,matlab里的数默认是double的,但也可以是单精度的single,整数int等等,比较时要注意变量的形式

第二个问题
数组下标必须为大于0的整数

你尝试一下运行下面几行
for ii = 1:3.3
disp(ii);
end
结果是
1

2

3
因为1:3.3其实展开后等同于[1 2 3],循环时ii的赋值是依次1,2,3那样子赋值
所以你的ii和jj实际上还是整数

matlab里的for循环和其他语言不一样,并不是for ii=1:3就每次数值加1,然后如果ii大于3就停止。
而是先把1:3展开成矩阵[1 2 3],然后依次赋值,所以你可以这么做:
for ii = [1:3, 10:12, 23]
ii会依次赋值1,2,3,10,11,12,23
甚至
for ii = ones(1, 10)
ii会每次赋值1,循环10次。(不过这么做没有什么意义,只是你可以这样做而已)
kilmer_pf
2009-12-27 · TA获得超过455个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:171万
展开全部
首先,double()是将一个数转换为double型变量
然后,数组或矩阵的下标必须是整数,因此B必须为整数或逻辑值
之所以在for ii=1:B 中B可以不是整数,是因为,ii在循环过程中默认单步增量为1,如果当前ii>B了,就跳出循环,因而B可以不是整数,D也是这个道理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
微生飞Wn
2009-12-27 · TA获得超过1228个赞
知道小有建树答主
回答量:317
采纳率:0%
帮助的人:272万
展开全部
double表达式是将数据转换为双精度的形式!!!

U 应该是一个数组的名字吧,

这样的话,U(4,B)就是指数组U的元素,第4行第B列,那么B肯定得为整数!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
申旺浦菁
2020-02-06 · TA获得超过3825个赞
知道大有可为答主
回答量:3081
采纳率:33%
帮助的人:376万
展开全部
你的k2是什么啊?是数的话说起来应该没问题,这样的问题最好贴代码.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苟且罪之
2009-12-27
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
编程?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式