小编Lou*_*Lou的帖子

Matplotlib给出错误"OverflowError:在draw_path中:超出单元格块限制"

我正在尝试使用matplotlib100000000个数据点渲染图像,它会产生错误OverflowError: In draw_path: Exceeded cell block limit.它可以绘制的数据点数量是否有限制?

python matplotlib python-3.x

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

当图形保存为PDF时,为什么Matlab使用Latex在文章中放置文本空间?

我试图在Matlab中添加一个包含Latex中符号的图例.当我绘制图形时,图例看起来很好.但是,当我将图形导出为PDF时,图例会将空格放入其中.我不知道为什么会这样.示例代码如下:

set(groot,'defaultLineLineWidth',2,'defaultAxesFontSize',...
    12,'defaultAxesFontName','timesnewroman',...
    'defaulttextinterpreter','latex')
x0 = 8;
y0 = 5;
width = 5;
height = 4;
kappa1 = 0.1;
kappa2 = 0.5;
f = linspace(0,2*pi,1000);
y1 = sin(f+kappa1*f.^2);
y2 = sin(f+kappa2*f.^2);

figure(1)
hold on
plot(f,y1,'k')
plot(f,y2,'b')
xlabel('Frequency (MHz)')
ylabel('Amplitude')
legend(strcat('\kappa = 0.1 MHz/','\mu','s'),...
    strcat('\kappa = 0.5 MHz/','\mu','s'))
grid on;
set(gcf,'units','inches','Position',[x0,y0,width,height],...
    'PaperPositionMode','Auto','PaperUnits','Inches',...
    'PaperSize',[width, height]);
saveas(gcf,'legendtest.pdf')
Run Code Online (Sandbox Code Playgroud)

将文件另存为PDF时,似乎发生了错误.它保存为JPG就好了.以下是我得到的两张照片.jpg是:

testlegendjpg

但我得到的PDF是:

在此输入图像描述

我在运行OS 10.12.5的Mac上使用Matlab版本R2017a.在此先感谢您的帮助!

pdf matlab latex legend matlab-figure

9
推荐指数
2
解决办法
657
查看次数

如何使用python按特定顺序对文件名进行排序

有没有一种简单的方法来对python中的目录中的文件进行排序?我记得的文件按顺序排列

file_01_001
file_01_005
...
file_02_002
file_02_006
...
file_03_003
file_03_007
...
file_04_004
file_04_008
Run Code Online (Sandbox Code Playgroud)

我想要的是类似的东西

file_01_001
file_02_002
file_03_003
file_04_004
file_01_005
file_02_006
...
Run Code Online (Sandbox Code Playgroud)

我目前正在使用glob以下目录打开它们:

for filename in glob(path):    
    with open(filename,'rb') as thefile:
        #Do stuff to each file
Run Code Online (Sandbox Code Playgroud)

因此,当程序执行所需的任务时,如果我一次执行多个文件,由于文件的排序,它会提供不正确的数据.有任何想法吗?

python sorting io python-3.x

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

将 Swift 字符串传递给 C

我对 Swift 还是很陌生,而且我对 C 的接触不多。

我正在尝试用 C 编写一个函数,该函数将获得一个 Swift 字符串,然后我可以用它做一些事情。问题是我不能 100% 确定 Swift 中的类型应该是什么才能使 C 看起来像它所看到的那样。

到目前为止,我在 Stack 上找到了几个看起来不错的例子,但对于当前版本的 Swift 来说,有些例子似乎已经过时了。

我首先使用这个例子让 C 和 Swift 相互交谈:Swift call C call Swift? 然后我接受了它并尝试更新 Swift 函数以返回某种字符串。我知道它需要是 UTF-8 返回类型,但我不确定如何正确发送内容。我看过如何将 Swift 字符串传递给 ac 函数?如何将 String 转换为 UnsafePointer<UInt8> 和 length,以及如何在 Swift 中将字符串转换为 unicode(UTF-8) 字符串?,但它们中没有一个真正适用于解决方案。或者我只是输入错误。到目前为止,我最接近返回的东西如下。

在 Swift 中,我ViewController是:

import UIKit

class ViewController: UIViewController {

    @_silgen_name("mySwiftFunc") // give the function a C name
    public func mySwiftFunc(number: Int) -> [CChar] …
Run Code Online (Sandbox Code Playgroud)

c ios swift

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

您可以在Python中使用大括号内的if-else语句来获取数组吗?

我想知道是否有一种很好的方法可以在Python中使用数组大括号内的if-else语句来分配值.我想要的是:

A = #some 2D array of length m by n, already initialized
A = np.float64(A)
val = someValue #any number, pick a number

A = [[val for j in range(n) if A[i][j] < val, else A[i][j]=A[i][j]] for i in range(m)]
Run Code Online (Sandbox Code Playgroud)

有一个很好的方法来做到这一点?或者,如果numpy有一个更快的计算方法,即使不是更好,也会同样好.

做我想要实现的目标的时间越长,就越像

for i in range(m):
    for j in range(n):
        if A[i][j] < val:
            A[i][j] = val
Run Code Online (Sandbox Code Playgroud)

所需的输出是将低于阈值的任何值设置为该阈值.我可以使用一维数组做更简单的if语句,例如

myArray = [otherArray[i] for i in range(theRange) if otherArray[i]>=value and otherArray[i]<=anotherValue]
Run Code Online (Sandbox Code Playgroud)

这个一维例子不是我想要的.这只是我正在寻找的编码块类型的一个例子.处理传统的if-else语句似乎更快.

python arrays if-statement numpy

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

标签 统计

python ×3

python-3.x ×2

arrays ×1

c ×1

if-statement ×1

io ×1

ios ×1

latex ×1

legend ×1

matlab ×1

matlab-figure ×1

matplotlib ×1

numpy ×1

pdf ×1

sorting ×1

swift ×1