小编Naz*_*mul的帖子

将二进制.dat文件作为数组读取

我有一个经过几次迭代的代码.在每次迭代中,代码都会生成一个基于numpy的数组.我将基于numpy的数组附加到现有的二进制.dat文件中.我使用以下代码生成数据:

WholeData = numpy.concatenate((Location,Data),axis=0)  
# Location & Data are two numpy arrays
DataBinary = open('DataBinary.dat','ab')
WholeData.tofile(DataBinary)
DataBinary.close()
Run Code Online (Sandbox Code Playgroud)

我试图将整个二进制文件读入一个数组.我遇到以下困难:

  1. 我尝试了以下代码:

    NewData = numpy.array('f')
    File1 = open('DataBinary.dat','rb')
    NewData.fromstring(File1.read())
    File1.close()
    
    Run Code Online (Sandbox Code Playgroud)

    错误状态:

    回溯(最近调用最后一次):文件"",第1行,在AttributeError中:'numpy.ndarray'对象没有属性'fromstring'

  2. 我尝试使用基于数组的数组,然后将文件读入数组.

    from array import array
    File1 = open('DataBinary.dat','rb')
    NewData.fromstring(File1.read())
    File1.close()
    
    Run Code Online (Sandbox Code Playgroud)

但是,NewData是错误的,即它不相同WholeData.我想将数据保存为numpy.array并读取它array.array可能不是一个好选择.

任何建议将不胜感激.

python arrays numpy

7
推荐指数
1
解决办法
6万
查看次数

在MATLAB中可以做些什么"命令执行时间太长"错误?

我从MATLAB调用Python程序并将数组传递给程序.我在MATLAB工作区中编写以下行:

% Let us assume some random array

num1 = ones(1,100);   

% I am forced to pass parameters as string due to the MATLAB-Python interaction.

num2 = num2str(num1);    

% The function is saved in a Python program called squared.py

z=python('squared.py',num2);
Run Code Online (Sandbox Code Playgroud)

当尺寸num1很小(例如100)时,程序工作正常.但是,当它很大,例如500000时,MATLAB显示以下错误:

??? Error using ==> dos
The command is too long to execute.

Error in ==> python at 68
[status, result] = dos(pythonCmd);
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个错误?

python matlab

4
推荐指数
1
解决办法
1071
查看次数

我可以使用Matplotlib在每个循环期间生成并显示不同的图像吗?

我是Matplotlib和Python的新手.我大多使用Matlab.目前,我正在使用Python代码,我想运行一个循环.在每个循环中,我将进行一些数据处理,然后根据处理的数据显示图像.当我进入下一个循环时,我希望关闭先前存储的图像并基于最新数据生成新图像.

换句话说,我想要一个等效于以下Matlab代码的python代码:

x = [1 2 3];

for loop = 1:3

    close all;

    y = loop * x;

    figure(1);

    plot(x,y)

    pause(2)

end
Run Code Online (Sandbox Code Playgroud)

我尝试了以下python代码来实现我的目标:

import numpy as np
import matplotlib
import matplotlib.lib as plt

from array import array
from time import sleep

if __name__ == '__main__':

    x = [1, 2, 3]

    for loop in range(0,3):

        y = numpy.dot(x,loop)

        plt.plot(x,y)

       plt.waitforbuttonpress

    plt.show()
Run Code Online (Sandbox Code Playgroud)

此代码将所有图形叠加在同一图中.如果我将plt.show()命令放在for循环中,则只显示第一个图像.因此,我无法在Python中复制我的Matlab代码.

python matlab matplotlib

4
推荐指数
1
解决办法
2万
查看次数

将基于numpy的数组保存在excel文件的不同行中

我有一个代码,numpy.array在每个循环中生成一个.我想将数组保存为excel文件中的一行(即,在第一个循环中创建的数组成为第一行,在第二个循环中生成的数组成为第二行,依此类推).该数组按以下方式创建:

for循环range(0,10):

Array1 = ..... 

Array2 = ......

Array3 = numpy.concatenate((Array1,Array2),axis=0)
Run Code Online (Sandbox Code Playgroud)

知道如何将Array3放在excel文件的10个不同行中吗?(如果数组是5维,则excel文件应包含10行和5列).

python excel numpy

4
推荐指数
1
解决办法
6285
查看次数

vcvars64.bat文件丢失

我从http://www.visualstudio.com/en-us/downloads#d-2010-express安装了visual C++ express .我还安装了Microsoft SDK http://www.microsoft.com/en-us/download/details.aspx?id=8279.

我需要vcvars64.bat来安装我的一个程序(Gnu Linear Programming Kit或GLPK).不幸的是,我在C:/ Program Files(x86)/ Visual Studio 10.0/vc中看不到这个文件.我在cmd终端输入以下命令:

"CALL"C:\ Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd"/ x64"

但它不会在预期的位置创建vcvars64.bat文件.

我可以从某个网页下载此文件并将其放在C:/ Program Files(x86)/ Visual Studio 10.0/vc中吗?任何反馈将非常感激.

谢谢,

纳兹穆尔

windows sdk visual-c++

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×4

matlab ×2

numpy ×2

arrays ×1

excel ×1

matplotlib ×1

sdk ×1

visual-c++ ×1

windows ×1