小编pap*_*bla的帖子

如何从命令行调用MATLAB并在退出之前打印到stdout

我正在尝试从命令行运行MATLAB脚本,并且在让MATLAB将结果返回到stdout时遇到问题.

运行以下命令时,MATLAB打印许可证标题并退出而不打印消息.

matlab -nodisplay -nojvm -r "fprintf(1, 'value: %f\n', 2.0); quit;"

*注意:我目前正在运行版本7.10.0.499(R2010a)64位(maci64)

matlab command-line

11
推荐指数
1
解决办法
8248
查看次数

Python将32位指针地址传递给C函数

我想在Python脚本的共享库中调用我的C函数.传递指针时出现问题,64位地址似乎被截断为被调用函数内的32位地址.Python和我的库都是64位.

下面的示例代码演示了该问题.Python脚本打印传递给C函数的数据的地址.然后,从被调用的C函数内打印接收的地址.此外,C函数通过打印本地创建内存的大小和地址来证明它是64位.如果以任何其他方式使用指针,则结果是段错误.

的CMakeLists.txt

cmake_minimum_required (VERSION 2.6) 
add_library(plate MODULE plate.c)
Run Code Online (Sandbox Code Playgroud)

plate.c

#include <stdio.h>
#include <stdlib.h>

void plate(float *in, float *out, int cnt)
{
    void *ptr = malloc(1024);
    fprintf(stderr, "passed address: %p\n", in);
    fprintf(stderr, "local pointer size: %lu\n local pointer address: %p\n", sizeof(void *), ptr);
    free(ptr);
}
Run Code Online (Sandbox Code Playgroud)

test_plate.py

import numpy
import scipy
import ctypes

N = 3
x = numpy.ones(N, dtype=numpy.float32)
y = numpy.ones(N, dtype=numpy.float32)
plate = ctypes.cdll.LoadLibrary('libplate.so')

print 'passing address: %0x' % x.ctypes.data
plate.plate(x.ctypes.data, y.ctypes.data, ctypes.c_int(N))
Run Code Online (Sandbox Code Playgroud)

python-2.7的输出

在[1]中:运行../test_plate.py

传递地址:7f9a09b02320

传递地址:0x9b02320

本地指针大小:8 …

c python macos ctypes cmake

8
推荐指数
2
解决办法
4159
查看次数

在非基于文档的应用程序中启用打开文件菜单项

我想在非基于文档的应用程序中启用灰显的打开文件菜单项.基于文档的应用程序会自动为您提供一个很好的打开文件对话框,其中包含基于plist条目等的文件扩展名过滤器......当然,存在一种简单优雅的方法来重新启用此功能.

我有...

  1. 将文档类型添加到项目属性窗口
  2. 将我的控制器类指定为应用程序委托
  3. 添加了委托应用程序:openFile:到我的控制器类

macos cocoa objective-c interface-builder

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

如何使用scipy或常见替代方法读取和写入24位WAV文件?

通常,wav文件是或需要为24位,但我看不到使用scipy模块写入或读取24位wav文件的方法。wavfile.write()的文档指出,wav文件的分辨率由数据类型确定。那一定意味着不支持24位,因为我不知道24位整数数据类型。如果有必要使用替代方法,那就很常见了,这样文件就可以轻松交换,而无需其他人来安装附加模块。

import numpy as np
import scipy.io.wavfile as wavfile

fs=48000
t=1
nc=2
nbits=24
x = np.random.rand(t*fs,nc) * 2 - 1
wavfile.write('white.wav', fs, (x*(2**(nbits-1)-1)).astype(np.int32))
Run Code Online (Sandbox Code Playgroud)

python audio numpy wav scipy

5
推荐指数
1
解决办法
5184
查看次数

标签 统计

macos ×2

python ×2

audio ×1

c ×1

cmake ×1

cocoa ×1

command-line ×1

ctypes ×1

interface-builder ×1

matlab ×1

numpy ×1

objective-c ×1

scipy ×1

wav ×1