小编Tom*_*han的帖子

在Matlab中更改图形字体无效

我在标签和图例中渲染希腊字符时遇到问题,所以我想也许切换字体会有所帮助.因此,我发现了一个更大的问题--Matlab似乎根本不尊重我的字体设置.

我当然试过了

set(gcf, 'FontName', 'Ubuntu')
set(gca, 'FontName', 'Ubuntu')
Run Code Online (Sandbox Code Playgroud)

还有像

set(findall(gca, 'type', 'text'), 'FontName', 'Ubuntu')
Run Code Online (Sandbox Code Playgroud)

set(0,'DefaultAxesFontName', 'Ubuntu')
Run Code Online (Sandbox Code Playgroud)

我也试过切换渲染器

set(0, 'DefaultFigureRenderer', 'OpenGL') % also tried 'zbuffer' and 'painters' 
Run Code Online (Sandbox Code Playgroud)

我甚至进入了图中的属性编辑器,并手动更改了字体.无论我做什么,字体都会出现相同的,丑陋的等宽字体(见下图).此图片使用图中菜单栏中的另存为...命令保存,但是例如print -dpng 'fonttest.png'也不起作用.

我已经fc-list在我的终端和listfontsMatlab命令提示符下仔细检查了Ubuntu字体是否已安装且可用.我正在运行Matlab R2012b.

如何在我的数字中设置字体?

更新:
正如评论中所建议的那样,我试着看看这是否可能是Ubuntu上的Java问题.果然,从OpenJDK切换到Oracle Java有帮助,但还不够 - 我可以使用Helvetica和其他一些,但我不能在我安装的字体中自由选择.例如,Ubuntu字体不起作用.(但是,它确实在Matlab的主GUI中 - 我在菜单等中将字体更改为Ubuntu,在编辑器和命令窗口中将Consolas更改为,并且它呈现正常.)

每当我选择不起作用的数字字体时,Matlab会使用下面屏幕截图中显示的内容作为后备.

在此输入图像描述

p,q f 这里确实应该是希腊字母PI,θ和岛(他们正在与规定 \pi 等),但我猜的字体没有这些字符.第三个图的y标签中的奇怪东西是瑞典语 - 它应该不是编码的问题,因为文件保存为UTF-8,这也是 slCharacterEncoding 返回的,所以我假设它也是一种字体问题.

ubuntu matlab fonts matlab-figure

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

如何为登录表单的链接指定返回URL?

看起来很简单,但事实证明并非如此 - 主要是因为View无法知道你通过模型和控制器走哪条路.无论如何,这是一个需要解决方案的问题:

我有一个登录链接,用户可以通过表单输入用户名和密码.当用户点击"提交"时,我想重定向到他正在查看的页面.最简单的方法似乎是将当前页面的url指定为querystring(...?returnUrl=...),其他所有内容都已构建完成.

但是在渲染链接时,我从哪里可以找到这个网址?我自然不能使用RedirectToActionResult,因为我不想实际转移用户 - 只在链接中呈现url.如何?


编辑:

我现在已经开始对这个问题给予赏金,因此我认为也适合澄清我的需求.

我的共享文件夹中有一个名为Login.ascx的UserControl.在其中,我将一个ActionLink呈现给登录表单,它包含在我的主页上的页脚中.我想要完成的是以下内容:

呈现ActionLink时,查询字符串returnUrl将附加到当前正在呈现的视图的路径.如果完成此操作,用户将在成功登录后使用已构建到ASP.NET MVC框架中的功能返回到他/她正在查看的页面.

之前的答案还不充分的原因主要是他们没有提供一种方法来建立当前视图的路由URL.我知道如何附加一个查询字符串,但我不知道如何找出该字符串中的内容.

为了标记一个答案,答案,我想的方法来重新构建路线当前显示视图,从母版一个usercontrol.

asp.net-mvc url-routing

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

如何处理从"DBNull"类型到"String"类型的转换无效

我需要一些关于如何处理以下内容的建议: - 我有一个数据字段misc_text_2,其类型为varchar(25)并允许NULL.现在,如果我使用以下语法

<asp:Label ID="lblPrinter" runat="server"  Text='<%# iif(eval("misc_text_2") is dbnull.value, "", iif(eval("misc_text_2") like "NA", "None", iif(eval("misc_text_2") like "KP1", "Kitchen Printer 1", iif(eval("misc_text_2") like "KP2", "Kitchen Printer 2", iif(eval("misc_text_2") like "KP3", "Kitchen Printer 3", iif(eval("misc_text_2") like "BP1", "Bar Printer 1", iif(eval("misc_text_2") like "BP2", "Bar Printer 2", iif(eval("misc_text_2") like "BP3", "Bar Printer 3", Eval("misc_text_2")))))))))%>'></asp:Label>
Run Code Online (Sandbox Code Playgroud)

我一直在收到错误异常详细信息:System.InvalidCastException:从类型'DBNull'到类型'String'的转换无效.

我知道我错过了什么,但是......

提前致谢

asp.net dbnull

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

为什么我的ActionFilters都没有运行?

我今天早些时候在ASP.Net MVC中提出了一个问题ActionFilters.事实证明我的问题确实是我ActionFilter甚至没有跑步.我阅读这篇文章的其他内容,我找不到他做的任何我不做的事情.

这是我的代码:

// The ActionFilter itself
public class TestingIfItWorksAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        filterContext.Controller.TempData["filter"] = "it worked!";
        base.OnActionExecuting(filterContext);
    }
}

// The Controller Action with the filter applied
[TestingIfItWorks]
public ActionResult Test()
{
    var didit = TempData["filter"];
    return View();
}
Run Code Online (Sandbox Code Playgroud)

我在调试时永远不会遇到过滤器方法中的断点,并TempData["filter"]null呈现视图时保留一个值.

为什么这不起作用?

asp.net-mvc action-filter

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

NetBeans使用哪种java编译器?

如果我告诉NetBeans(6.9)在save上编译,NetBeans警告我编译的类与用JDK编译器编译的类不同.Java平台在同一对话框中设置为"JDK 1.6".NetBeans使用哪种编译器?为什么NetBeans不使用JDK编译器?

alt text http://img814.imageshack.us/img814/3449/compileonsave.png

java compiler-construction netbeans

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

将所有非零矩阵元素设置为1(同时保持其他元素为0)

我有一个网格定义为

[X, Y, Z] = meshgrid(-100:100, -100:100, 25); % z will have more values later
Run Code Online (Sandbox Code Playgroud)

和两种形状(椭圆形,在这种情况下):

x_offset_1 = 40;
x_offset_2 = -x_offset_1;
o1 = ((X-x_offset_1).^2./(2*Z).^2+Y.^2./Z.^2 <= 1);
o2 = ((X-x_offset_2).^2./(2*Z).^2+Y.^2./Z.^2 <= 1);
Run Code Online (Sandbox Code Playgroud)

现在,我想找到在非零的所有点或者椭圆形.我试过了

union = o1+o2;
Run Code Online (Sandbox Code Playgroud)

但由于我只是添加它们,重叠区域的值将为2而不是所需的值1.

如何将矩阵中的所有非零条目设置为1,而不管它们之前的值是什么?

(我试过normalized_union = union./union;,但后来我最终得到NaN所有0个元素,因为我除以零......)

matlab matrix

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

在Java中基于XML自动构建资源类

在Android应用程序中,资源是在xml文档中指定的,这些文档自动构建在R类中,在源代码中可以像强类型一样轻松访问.

有什么方法可以使用类似的方法用于常规Java桌面应用程序吗?

我想要完成的是从代码中删除字符串(作为"层"的分离,或多或少),并通过简单地告诉程序选择xml来轻松添加对本地化的支持对应于所需语言的文件.

我已经google了一下,但我正在寻找的东西似乎淹没在解析或输出xml的结果中,而不是利用xml生成代码的工具.

java xml code-generation

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

将数据从matlab文件读入C语言

我正在尝试学习如何使用C API来读取Matlab .mat文件,但它没有像我预期的那样工作:

我想打开一个非常简单的.mat文件test.mat,从文件中读取一个值并将其存储在C变量中.我test.mat使用以下命令在Matlab中创建:

> value = 3;
> save ("test.mat", "value")
Run Code Online (Sandbox Code Playgroud)

下面是我的C代码,它甚至没有编译 - 编译器似乎没有找到头文件.请参阅下面的编译器输出代码.我在这做错了什么?

码:

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

int main(int argc, char *argv[]) {
    double value;
    MATFile *datafile;
    datafile = matOpen("test.mat", "r");

    mxArray *mxValue;
    mxValue = matGetVariable(datafile, "value");

    matClose(datafile);
    value = *mxGetPr(mxArray);

    mxFree(mxArray);

    printf("The value fetched from the .mat file was: %f", value);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译器输出:

$ make animate_shot
cc  -I/usr/local/MATLAB/R2011a/extern/include/   animate_shot.c   -o animate_shot
/tmp/cczrh1vT.o: In …
Run Code Online (Sandbox Code Playgroud)

c matlab

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

单元测试运算符<<在C++中

我试图找出一种很好的方法来单元测试我operator<<在C++中的实现.我有一个实现运算符的类,并给定一个具有特定状态的实例,我想检查输出是否是我想要的.

这是我的代码(头文件):

class Date {
    virtual int year() const { return 1970; };
    virtual int month() const { return 1; };
    virtual int day() const { return 1; };
    friend  std::ostream &operator<<(std::ostream &os, const Date &d);
};

std::ostream &operator<<(std::ostream &os, const Date &d) {
    os << d.year() << "-" << d.month() << "-" << d.day();
    return os;
};
Run Code Online (Sandbox Code Playgroud)

现在,在我的单元测试方法中,我可以做Date d; cout << d;并验证何时运行测试输出是否正确.但是,我更倾向于以编程方式验证这一点,因此我不必在最终报告中查看测试输出(希望说"0测试失败!").

我对C++很新,所以除了输入和输出之外,我从来没有真正使用过流.

我该如何做到这一点?

c++ unit-testing iostream

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

刷新的OAuth2令牌具有无效签名(Azure AD OAuth2)

我正在尝试创建一个身份验证流,其中用户的访问令牌与刷新令牌一起保存在服务器端会话中,当令牌过期时,如果会话仍然有效,则会续订.但是,在使用与原始令牌相同的方法验证时,刷新后从Azure AD返回的令牌具有无效签名.

这是一个可以说明问题的可运行的要点:https://gist.github.com/tlycken/fdaf47dc31e03de43a1a07fbbea2ab91

我正在做的基本上是这样的:

  1. 当用户请求页面时,检查会话.如果不存在,则重定向到/auth重定向到Azure AD,当我返回时,我有一个有效的令牌,我存储在会话中.

  2. 使用以下方式验证会话中的令牌jwks-rsa.(这通常可以正常工作,所以我故意在令牌字符串中添加一些东西,使签名在测试代码中无效.)

  3. 如果令牌验证失败,并且会话上有刷新令牌,请尝试使用该刷新令牌获取新令牌.此请求通常返回状态200 OK和一组新的访问/刷新令牌.

  4. 使用与验证旧访问令牌相同的代码验证新访问令牌(现在没有乱码令牌).这应该工作,IIUC,但它失败了错误invalid signature.

为什么我新刷新的令牌未通过验证?

更新: 我能够创建一个更简单的流程来重现这个; 要点已经更新.它现在执行以下操作(沿途打印这些消息):

no session, redirecting to /auth
successful auth callback, redirecting to /
verifying old token
decoded user id e7f02a6e-510c-430d-905c-f8a0e63206c2
refreshing
fetching /me with renewed token
got user id e7f02a6e-510c-430d-905c-f8a0e63206c2
verifying new token
token verification failed: invalid signature
Run Code Online (Sandbox Code Playgroud)

除了自己验证令牌之外,我现在还向Azure发送请求,希望这样的请求会因无效令牌而失败.但它过去了!

oauth oauth-2.0 azure-active-directory

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