- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我发现了几个类似的问题,但没有一个能准确描述我面临的问题。我有一个 OBJ 文件,其中包含描述顶点位置的行:
v 0.01214 0.4242 0.82874
我想将此数据转换为 matlab 友好的格式,以便我可以使用从其他文件获得的这些值和其他值来绘制一些数据。我正在使用 python(和 numpy)将此数据转换为二进制文件,因此我使用了以下函数:
def extract_verts(in_file, out_file):
v = np.zeros(3, np.float32)
for line in in_file:
words = line.split()
if words[0] == 'v':
v[:] = [np.float32(s) for s in words[1:4]]
print v[:]
v.tofile(out_file)
问题是,当我使用 matlab 读取它时(fread 完成这项工作),第一个值是正确的,但随后读取的值不正确。在一些不正确的值被再次读取后,正确的值被再次读取,但它们似乎被移动了(例如,当使用 vector-3 结构时,x 分量显示为 y 分量)。后来,它再次发生并且不正确,然后正确但读取了移位的值,依此类推。我已经检查文件是否被正确读取,因为我可以从打印行中看到读取值。
我已经尝试用 python 读取文件,以防万一它是一个 matlab 问题:
data = np.fromfile('file.dat', np.float32)
i = 0
while i < 100:
print data[i]
i = i+1
而且它的发生完全相同(即使不正确的值也是相同的)。
我认为这可能与字节顺序或操作系统相关问题有关,因为我正在使用的这组脚本适用于 MacOS(脚本由同事创建),但我使用的是 Windows 7。有过去有人遇到过类似的问题吗?
谢谢。
最佳答案
很可能,错误出在您没有显示的代码中。 extract_verts()
的 out_file
参数似乎是一个打开的文件对象,以二进制模式打开此文件很重要:
out_file = open("out.dat", "wb")
文件默认以文本模式打开。在 Windows 上,这意味着会发生自动换行符处理:所有出现的字节 '\n'
都将替换为 '\r\n'
。这就是为什么直到 '\n'
第一次出现的所有值都是正确的。
关于Python fromfile 在读取使用 tofile 生成的二进制文件时返回不正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6198391/
当我尝试执行 Path.toFile() 时,路径是 C:,由于某种原因,生成的文件默认为当前执行目录。 我在 C: 中的一个目录中执行 Scanner userInput = new Scanner
我正在将 Matlab 切换到 NumPy/SciPy,似乎 np.fromfile 和 ndarray.tofile 分别对应于 Matlab 中的 fread 和 fwrite。 为了测试这些 A
我有一个非常简单的问题,我只是找不到合适的答案。那是 [NSKeyedArchiver archiveRootObject:value toFile:filePath]; 根据苹果文档 here ,上
我发现了几个类似的问题,但没有一个能准确描述我面临的问题。我有一个 OBJ 文件,其中包含描述顶点位置的行: v 0.01214 0.4242 0.82874 我想将此数据转换为 matlab 友好的
当我尝试保存一个非常大的(20000 x 20000 元素)数组时,我得到了所有的零: In [2]: shape = (2e4,)*2 In [3]: r = np.random.randint(0
最近,我正在学习 NSKeyedArchiver 和 NSKeyedUnarchiver。我发现存在三种归档数组的方法,我正在尝试找出它们之间的区别。 1.使用archiveRootObject:to
我正在尝试下载一个zip文件,然后在解压缩之前将其写入cacheDirectory。但是,write(toFile :)始终返回false: import Foundation func downlo
我正在尝试从文件保存和恢复 arr.tofile("saved_arr.npy", sep=" ") #shape is (4, 5000, 5000) arr = np.fromfile("save
我正在使用 numpy 的 tofile() 将 float32 写入文件。 float_num = float32(3.4353) float_num.tofile('float_test.bin'
我目前正在使用 numpy.ndarray.tofile 函数传递存储在 numpy.ndarray 中的数据,该函数内置于 numpy.ndarray . 此功能的问题在于,它会在长行中输出所有数据
我有一个问题,我无法在 iOS 8 中保存,而它在 iOS 7 中运行良好。请问我的问题在哪里? .h NSMutableArray *selected; .m - (vo
我想保存到文件 NSSearchPathForDirectoriesInDomains(.CachesDirectory,.UserDomainMask, true)。我写了如下代码,但是它不能将文件
我已经在 Windows 中安装了一个网络驱动器(samba 服务器)。 我想在 Java 程序中读取该驱动器中的一个文件。 在我尝试使用以下方法读取文件之前: Paths.get(basePath,
使用 iOS 12,archiveRootObject:toFile:已被弃用。谁能建议一种简化的替代方法来将对象归档到文件中? //Generic example of archiver prior
我正在学习教程 Project10并尝试将其转换为 Swift 3.0。使用 UIImagePickerController 选择图像然后将其保存到 Documents Directory 是通常最简
对于 Windows 上的本地文件,我得到的 Files.exists(path) 与 path.toFile().exists() 的结果不同。我可以在 Windows 资源管理器中看到这个文件,尽
我正在尝试使用 writeCopy(toFile:, encryptionKey:) 更改我的 Realm 数据库的加密 key ,如下所示: public static func updateEnc
我是一名优秀的程序员,十分优秀!