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.
是什么原因 展开
还有一个问题:
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.
是什么原因 展开
5个回答
展开全部
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次。(不过这么做没有什么意义,只是你可以这样做而已)
第二个问题
数组下标必须为大于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次。(不过这么做没有什么意义,只是你可以这样做而已)
展开全部
首先,double()是将一个数转换为double型变量
然后,数组或矩阵的下标必须是整数,因此B必须为整数或逻辑值
之所以在for ii=1:B 中B可以不是整数,是因为,ii在循环过程中默认单步增量为1,如果当前ii>B了,就跳出循环,因而B可以不是整数,D也是这个道理。
然后,数组或矩阵的下标必须是整数,因此B必须为整数或逻辑值
之所以在for ii=1:B 中B可以不是整数,是因为,ii在循环过程中默认单步增量为1,如果当前ii>B了,就跳出循环,因而B可以不是整数,D也是这个道理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double表达式是将数据转换为双精度的形式!!!
U 应该是一个数组的名字吧,
这样的话,U(4,B)就是指数组U的元素,第4行第B列,那么B肯定得为整数!!!
U 应该是一个数组的名字吧,
这样的话,U(4,B)就是指数组U的元素,第4行第B列,那么B肯定得为整数!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的k2是什么啊?是数的话说起来应该没问题,这样的问题最好贴代码.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询