我不确定我的头衔是否合适.我正在做的是编写一个python脚本来自动化我的一些代码编写.所以我正在解析.h文件.但我想在开始之前扩展所有宏.所以我想调用shell来:
gcc -E myHeader.h
Run Code Online (Sandbox Code Playgroud)
哪个应该将myHeader.h的post preprocessed版本放到stdout中.现在我想直接将所有输出读入字符串以进行进一步处理.我已经读过我可以用popen做到这一点,但我从未使用过管道对象.
我该怎么做呢?
因此,在嵌入式系统部门,我明年将参加大学,我们将了解到动态数据结构在嵌入式系统程序中是一件坏事.但讲义没有说明原因.
现在我正在开发一个中等规模的嵌入式系统LURC控制器,主要是利用AVR169MEGA的"Butterfly"演示板的外围设备.产生4个PWM信号来控制伺服和ESC.并提供9 seg液晶屏.
现在我想不出任何更好的存储指令的方法,因为它们是收到的小瓶USART序列,而不是队列.尤其是我需要等待收到未知数量的数据的东西:例如,要在LCD屏幕上显示的字符串.
那你为什么不在嵌入式系统的微控制器上使用动态数据结构呢?只是你在一个严重的内存限制环境中,并且必须确保你的mallocs成功吗?
我在哪里可以找到标准.Net库中方法的时间复杂度?
我使用MSDN,它偶尔提到时间复杂性,但不经常(我遇到类似的Java问题).
例如,我想知道是否Microsoft.FSharp.Collections.Set<'T>.MaximumElement
是O(1)(如果类明确总是跟踪最大元素,那将是这种情况.)或者如果它是O(lg n),(如果我们必须搜索它的地图).
这是一个具体的例子,但肯定会记录大O时间的复杂性.
假设我有一个Array名为的变量p:
julia> p = [5]
julia> typeof(p)
Array{Int64,1}
Run Code Online (Sandbox Code Playgroud)
我应该如何将其转换为标量?p也可能是二维的:
julia> p = [1]''
julia> typeof(p)
Array{Int64,2}
Run Code Online (Sandbox Code Playgroud)
(注意:增加维度的双转置技巧可能在Julia的未来版本中不起作用)
通过适当的操作,我可以制作p任何尺寸,但我应该如何将其缩小为标量?
一种可行的方法是p=p[1],但如果p有多个元素,则不会抛出任何错误p; 所以,这对我没有好处.我可以构建自己的函数(带检查),
function scalar(x)
assert(length(x) == 1)
x[1]
end
Run Code Online (Sandbox Code Playgroud)
但它似乎必须重新发明轮子.
什么是行不通的squeeze,它只是剥离尺寸直到p是一个零维数组.
(与Julia相关:将1x1数组从内积转换为数字,但在这种情况下,与操作无关.)
我想分类很多东西.
Julia的标准库排序是单线程的.如何利用我的多核机器更快地对事物进行排序?
好的,所以我正在编写一些python代码(我不会写python,我更习惯java和C).
无论如何,所以我需要存储整数文字的集合.(理想情况下,其中10,000个,目前我只有1000个)我本来希望通过文件IO访问文字,或访问源API,但这是不允许的.反正不是ontopic.
所以我将文字放入列表中:
src=list(0,1,2,2,2,0,1,2,... ,2,1,2,1,1,0,2,1)
#some code that uses the src
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行该文件时,它会出现错误,因为有超过255个参数.所以构造函数就是问题所在.我该怎么做?
这些数据对我来说是一个空间分隔的文本文件.我只是搜索并替换并复制了它
我正在使用Seaborn在Pandas中绘制一些数据.
我正在制作一些非常大的地块factorplot.
为了看到它们,我在我的大学使用了一些可视化设施.我正在使用一个由4×4显示器组成的复合屏幕,小屏幕(但非零)斜面 - 屏幕之间的间隙.这个差距是黑色的.为了最大限度地减少屏幕之间的断开,我希望图形背景为黑色.我一直在挖掘文档和玩游戏,我无法解决它.当然这很简单.
我可以使用灰色背景 set_style('darkgrid')
我需要直接访问matplotlib中的情节吗?
我是朱莉娅的新手,我试图在语言层面理解它ccall是什么.在语法级别,它看起来像一个普通函数,但它在参数的显示方式上显然不同:
请注意,参数类型元组必须是文字元组,而不是元组值变量或表达式.
另外,如果我评估一个绑定到Julia REPL中的函数的变量,我会得到类似的东西
julia> max
max (generic function with 15 methods)
Run Code Online (Sandbox Code Playgroud)
但如果我尝试做同样的事情ccall:
julia> ccall
ERROR: syntax: invalid "ccall" syntax
Run Code Online (Sandbox Code Playgroud)
显然,这ccall是一种特殊的语法,但它也不是一个宏(没有@前缀,无效的宏使用会产生更具体的错误).那么,它是什么?它是用语言编写的东西,还是我可以用一些我不熟悉的语言构造来定义自己的东西?
如果它是一些烘焙的语法,为什么决定使用函数调用符号,而不是将其实现为宏或设计更可读和不同的语法?
我正在写一些适度的性能关键代码.此代码将位于最内部循环中,计算的运行时间以小时为单位.快速计算表明,在计算的某些变体中,此代码将执行大约10 ^ 12次.
因此,函数是计算sigmoid(X),另一个计算它的导数(gradient).Sigmoid具有以下属性:对于
y = sigmoid(x),dy/dx = y(1-y)
在python for numpy中,这看起来像:
sigmoid = vectorize(lambda(x): 1.0/(1.0+exp(-x)))
grad_sigmoid = vectorize(lambda (x): sigmoid(x)*(1-sigmoid(x)))
Run Code Online (Sandbox Code Playgroud)
可以看出,这两个函数都是纯粹的(没有副作用),因此它们是备忘的理想候选者,至少在短期内,我有一些担心缓存每次调用sigmoid所做的:存储10 ^ 12个浮点数将需要几TB的RAM.
有没有一种优化方法?
python会不会认为这些是纯函数并为我缓存它们?
我什么都不担心?
我看到朱莉娅有3种不同的方式来实现平等。
==,===和isequal
我应该使用哪个,什么时候使用?
julia ×4
python ×4
list ×2
.net ×1
arrays ×1
avr ×1
big-o ×1
blas ×1
c# ×1
ffi ×1
function ×1
literals ×1
macros ×1
matplotlib ×1
memoization ×1
msdn ×1
numpy ×1
optimization ×1
pandas ×1
parameters ×1
plot ×1
popen ×1
queue ×1
scalar ×1
seaborn ×1
sorting ×1
stack ×1
string ×1
syntax ×1
syntax-error ×1