gpt4 book ai didi

arrays - 在 Octave/Matlab 中类型转换为 int

转载 作者:太空宇宙 更新时间:2023-11-03 20:17:07 25 4
gpt4 key购买 nike

我需要调用使用 linspace 命令创建的矩阵的索引,并基于从示波器获取的一些数据。因此,输入的数据是 double 的。但是,我真的不能打电话:

Time[V0Found]

其中 V0Found 类似于 5.2,但是,取索引 5 已经足够接近了,所以我需要去掉小数点。我用这个等式去掉了小数:

V0FoundDec = V0Found - mod(V0Found,1)
Time[V0FoundDec]

然而,即使这会降低小数点,octave 仍然会提示它。

那么,我该怎么做才能将其类型转换为 int?

最佳答案

在 MATLAB 中,它应该是 int8(x)int16(x)one of the other integer casts .

但令我惊讶的是您需要为索引执行此操作。尝试

myarray(floor(indexlist))

myarray(round(indexlist))

其中 myarray 是您的数组,indexlist 是您的非整数索引向量。


例子:

octave-3.2.3:8> v=rand(1,8)*10+1
v =

3.1769 1.4397 8.7504 1.7424 6.9413 3.1663 8.4085 9.0179

octave-3.2.3:9> a = (1:1:20).^2
a =

Columns 1 through 15:

1 4 9 16 25 36 49 64 81 100 121 144 169 196 225

Columns 16 through 20:

256 289 324 361 400

octave-3.2.3:10> a(floor(v))
ans =

9 1 64 1 36 9 64 81

关于arrays - 在 Octave/Matlab 中类型转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2556811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com