[已答复] 运算结果不符

[复制链接]
zuishangmoruo 发表于 2017-7-30 15:46:57
function []=cccccccc()
pp=0.8;
a=[1 2 3 4 5 6 7 8 9 0];
b=a(:,1:1:length(a)*(1-pp));
b


%%运算结果:
b =

     1



请问为什么b的结果不是b=[1 2]?如果要想得到此结果,如何修改?

3 条回复


深蓝孩童 发表于 2017-7-30 19:09:35
zuishangmoruo 发表于 2017-7-30 18:53
谢谢,另外我在命令窗口直接输入代码,却能得到b=【1 2】,难道在命令窗口里面数值类型会有所差异? ...

不可能,你把你运行的截图贴出来看看。

zuishangmoruo 发表于 2017-7-30 18:53:10
深蓝孩童 发表于 2017-7-30 16:59
由于浮点数误差的原因会得到这个结果,所以你的索引只是第一个,运行的时候有这个警告:Warning: Integer o ...

谢谢,另外我在命令窗口直接输入代码,却能得到b=【1 2】,难道在命令窗口里面数值类型会有所差异?

深蓝孩童 发表于 2017-7-30 16:59:21
  1. 2-length(a)*(1-pp)
  2. ans =
  3.      4.440892098500626e-16
复制代码
由于浮点数误差的原因会得到这个结果,所以你的索引只是第一个,运行的时候有这个警告:Warning: Integer operands are required for colon operator when used as index

这样就OK了:
  1. pp=0.8;
  2. a=[1 2 3 4 5 6 7 8 9 0];
  3. b=a(1:round(length(a)*(1-pp)));
  4. b
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表