小编JP.*_*JP.的帖子

如何从MATLAB中的字符串输入创建函数指针?

如果我inline在MATLAB中使用该函数,我可以创建一个单独的函数名称,可以根据以前的选择做出不同的响应:

if (someCondition)
  p = inline('a - b','a','b');
else
  p = inline('a + b','a','b');
end

c = p(1,2);
d = p(3,4);
Run Code Online (Sandbox Code Playgroud)

但是我正在创建的内联函数变得非常史诗,所以我想将它们更改为其他类型的函数(即m文件,子函数或嵌套函数).

假设我有m个文件,比如Mercator.m,KavrayskiyVII.m等等(都取值philambda),我想以p与上面相同的方式分配所选择的函数,以便我可以调用它多次(带可变大小的矩阵和使用eval不可能或完全混乱的东西.

我有一个变量,type,那将是所需要的功能(例如该名称中的一个'Mercator','KavrayskiyVII'等等).我想我需要p进入一个指向type变量内部命名函数的指针.我有什么想法可以做到这一点?

string matlab function-pointers function-handle

9
推荐指数
1
解决办法
9891
查看次数

Rack :: Session ::与Sinatra的游泳池

我有一个Sinatra webapp,我用enable :sessions它来访问我的会话数据session[:mything].

我现在想在服务器端存储数据(即使用基于数据库的会话),我无法弄清楚如何使用Rack::Session::Pool,这似乎是我需要使用的东西.

如何转换我的webapp以用于Pool?

我知道我需要添加这条线

use Rack::Session::Pool
Run Code Online (Sandbox Code Playgroud)

接下来是什么?- 提前致谢!

编辑:这是一个使用基于cookie的会话的例子:

require 'rubygems'
require 'sinatra'

enable :sessions

get '/' do
  session.merge!(params)
  session.inspect
end
Run Code Online (Sandbox Code Playgroud)

访问/?hi=there然后访问/,你仍然会看到{'hi'=>'there'},因为它已存储在cookie中.

ruby session rack sinatra

9
推荐指数
1
解决办法
3692
查看次数

Erb与Sinatra在红宝石中

所以我有一个我用sinatra构建的网络服务器,其内容如下:

set :variable,"value"
get '/' do
  erb :index
end
Run Code Online (Sandbox Code Playgroud)

当然,模板views/index.erb看起来像这样:

<html>
<!-- etc -->
  <ul>
  <% my_array.each do |thing| %>
  <%="Something: #{thing}, variable from sinatra: #{settings.variable}"%>
  <% end %>
  </ul>
</html>
Run Code Online (Sandbox Code Playgroud)

如果您尝试运行这样的代码,您会注意到您无法从erb模板内部访问sinatra的设置变量.任何想法如何在保持简洁的同时实现这一目标?

提前致谢!

ruby erb sinatra

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

`var = something rescue nil`行为

在Ruby中,您可以rescue在分配结束时编写一个代码来捕获可能出现的任何错误.我有一个函数(下面a_function_that_may_fail:),如果不满足某些条件,它会让它抛出一个错误.以下代码运行良好

post = {}
# Other Hash stuff
post['Caption'] = a_function_that_may_fail rescue nil
Run Code Online (Sandbox Code Playgroud)

但是如果函数失败,我想发帖['Caption']甚至没有设置.

我知道我能做到:

begin
  post['Caption'] = a_function_that_may_fail
rescue
end
Run Code Online (Sandbox Code Playgroud)

但感觉有点过分 - 是否有更简单的解决方案?

ruby exception-handling

8
推荐指数
1
解决办法
9918
查看次数

在Objective-C中本地列出蓝牙设备

我正在尝试编写一个非常简单的终端应用程序,它将定期扫描蓝牙设备并显示范围内每个蓝牙设备的蓝牙网络地址(十六进制数字).我的目标平台是Mac OS X,所以我认为这将涉及Objective-C.我没有Objective-C的任何经验(虽然我有C的所有基础知识),但这看起来应该非常简单.

我在哪里可以找到快速本地列出蓝牙设备的文档和示例代码(或教程,或者过去曾经使用过的代码)?

cocoa bluetooth objective-c

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

Windows应用程序数据目录

不完全是一个编程问题,但它足够接近所以这里:

在Mac OS中,我会将我的应用程序的用户特定文件~/Library/Application Data/{MyApp}/放入*nix中,我会把它们放入~/.{MyApp}/- 我应该把它放在哪里用于Windows?

我将使用Ruby File.expand_path来访问这个目录,所以如果有一个等效的窗口~就可以了.

(对于Windows XP,Vista和7的答案,如果它们不相同,将不胜感激)

ruby windows settings

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

Nokogiri(Ruby)和XPath

Nokogiri只支持XPath 1.0吗?我正在尝试在值的单元格中进行简单的字符串替换,就像这样(其中element包含类似'*我的字符串(无用的文本)')

<xsl:value-of select="replace(element,'^\*\ (.+)\ \(.*\)$','\\1')">
Run Code Online (Sandbox Code Playgroud)

这是不是很差的XSL?或者Nokogiri有限制吗?

xslt xpath nokogiri

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

如何在MATLAB中使用不规则间隔的数据制作冲浪图?

我知道我可以通过以下方式在MATLAB中创建3D曲面图:

x = linspace(1,10,100);
y = linspace(10,20,100);

[X Y] = meshgrid(x,y);

Z = X * Y;

surf(X,Y,Z);
Run Code Online (Sandbox Code Playgroud)

但这需要生成高度图的所有节点对齐.我有一组数据,它们有任意点(x,y)和高度(z).是否有一种简单的方法来绘制图形,以类似的方式在点之间生成表面surf

3d matlab plot

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

如何将Hash连接到URL参数?

一个快速的Ruby问题:

params = {:q => "A query",:foo => "bar",:nasty => "Schrödinger's cat"}
p do_it(params)
=> q=A%20query&foo=bar&nasty=Schr%C3%B6dinger%27s+cat
Run Code Online (Sandbox Code Playgroud)

(我想ö编码就是这样,请原谅我,如果它错了)有没有比下面更简单的方法呢?:

def do_it(params)
  out = []
  params.each_pair{|key,val|
    out.push "#{CGI.escape(key.to_s)}=#{CGI.escape(val)}"
  }
  out.join("&")
end
Run Code Online (Sandbox Code Playgroud)

我不打算以"最佳"的方式开始一场战争 - 它只是这种方法看起来很像kludgey和非红宝石一样!有小费吗?

ruby url

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

从 Heroku 应用程序中访问当前的 git 提交号

我知道slug 编译器会删除.git在创建 heroku slug 时目录,但是有什么方法可以配置 Heroku 以便我可以从脚本中访问当前正在运行的 git 提交号?

我希望能够在我的 sinatra 应用程序(在 Heroku 中运行)上有一个小链接,上面写着“运行版本 e72fb274a0 ”(或类似的东西)。如何检索它,或强制 slug 编译器将其添加到环境变量中?

进步:

我认为最好的方法是制作一个自定义 buildpack,在删除 .git 目录之前将 git commit 版本号写入 heroku slug。

我已经尝试过这样做(请参阅我的 ruby​​ buildpack 分支),但是我添加的行 –第 23 行– 似乎没有完成这项工作。Heroku 看到并使用新的 buildpack,但似乎没有将文件写入 slug。

任何人都知道为什么我的自定义 buildpack 没有按预期工作?

谢谢,

J.P

ruby git heroku sinatra buildpack

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