小编Mie*_*ter的帖子

MATLAB - 如何将子图缩放在一起?

我在一个图中有多个子图.每个图的X轴是相同的变量(时间).每个图上的Y轴是不同的(它代表什么和数据的大小).

我想要一种方法同时放大所有绘图的时间尺度.理想情况下,通过在其中一个图上使用矩形缩放工具,并使其他图相应地更改其X限制.对于所有这些,Y限制应该保持不变.自动拟合数据以在Y方向上填充图是可以接受的.

(这个问题几乎与Stack Overflow问题一相同Matplotlib/Pyplot:如何将子图缩放在一起?(MATLAB除外))

matlab plot zoom

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

如何从矩阵的每一行中减去一个向量?

可能重复:
如何将矩阵的每一行除以固定行?

我正在寻找一种优雅的方法来从矩阵的每一行中减去相同的向量.这是一种非常优雅的方式.

a = [1 2 3];
b = rand(7,3);
c(:,1) = b(:,1) - a(1);
c(:,2) = b(:,2) - a(2);
c(:,3) = b(:,3) - a(3);
Run Code Online (Sandbox Code Playgroud)

而且,优雅的方式不能比这种方法慢.

我试过了

c = b-repmat(a,size(b,1),1); 
Run Code Online (Sandbox Code Playgroud)

而且似乎更慢.

编辑:获胜者是这种方法.

c(:,1) = b(:,1) - a(1);
c(:,2) = b(:,2) - a(2);
c(:,3) = b(:,3) - a(3);
Run Code Online (Sandbox Code Playgroud)

编辑:更多方法和tic toc结果:

n = 1e6;
m = 3;
iter = 100;
a = rand(1,m);
b = rand(n,m);

tic
c = zeros(size(b));
for i = 1:iter
    c(:,1) = b(:,1) - a(1);
    c(:,2) = …
Run Code Online (Sandbox Code Playgroud)

matlab vector matrix subtraction

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

如何将现有文件夹结构添加到我的visual studio项目(python工具)?

这个问题基本上与这些问题相同:

如何在Visual Studio中将现有目录树添加到项目? 如何在Visual Studio中"添加现有项"整个目录结构?

除了解决方案不适合我.

它看起来像另一个用户有完全相同的问题

http://pytools.codeplex.com/discussions/249455

但是http://xkcd.com/979/又一次袭来.

我正在使用Visual Studio 2010和Visual Studio的Python工具.

在此项目中,用户创建新文件夹和代码并将其提交给SVN.另一个用户将更新SVN,新的文件和文件夹将显示在Windows资源管理器中.然后,用户需要一种简单的方法将这些文件夹和文件添加到解决方案中.

将解决方案放入SVN,这样添加的文件夹可以在提交之前添加到解决方案中.该解决方案在与源不同的区域内进行控制.

建议的解决方案:

/sf/answers/27473421/

不会工作,因为:

解决方案资源管理器中的"显示所有文件"按钮不会显示.

建议的解决方案:

/sf/answers/4044491/

不会工作,因为:

当我将文件夹拖到解决方案资源管理器窗格上时,删除文件夹的位置会影响解决方案嵌套的位置.如果它被丢弃在错误的文件夹中,它将显示为具有预期名称和预期内容的文件夹.这非常接近我们想要的,除了它在错误的文件夹中(因为我故意将它放在错误的文件夹中).如果文件夹被拖动到正确的位置,它将显示为带有感叹号的文件.当你双击"文件"时,它说

"The item <folder name> does not exist in the project directory.  It may have been moved, renamed, or deleted"
Run Code Online (Sandbox Code Playgroud)

我相信这是因为VS会尝试在您将其拖动到的目录中创建该文件夹的副本.如果我将文件夹完全移出我的项目(比如桌面),然后将其拖到适当位置的解决方案资源管理器中,它将显示为项目中的文件夹.该文件夹的副本也在磁盘上由drop指定的位置创建,具有相同的名称和内容.

因此,将文件夹拖放到解决方案资源管理器中似乎会在您删除解决方案时在解决方案中定位的磁盘上创建该文件夹的副本.如果该位置已具有该名称的文件夹,则该文件夹将作为文件导入.

我的解决方案

我正在使用PyCharm,它更好.

python visual-studio-2010 ptvs

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

有没有更好的方法来控制子进程的 PYTHONPATH?

我有一组必须动态修改 os.sys.path 的脚本。然后脚本启动一个子流程。理想情况下,子进程将与调用者具有相同的 os.sys.path。我想避免将它作为参数传递,因为这需要修改子流程脚本。

我有可以工作并满足我所有需求的代码。我想知道是否有更好的方法来做到这一点,以及这种方法是否存在任何缺陷。

主要流程

import os
import sys
import subprocess

#append a dir thats not on the sys path
sys.path.append('C:/pytest2/')

#convert the sys.path into env variable format
pypath = ''
for d in sys.path:
    pypath = pypath + d + ';'

#create a temp copy of the env variables
myenv = os.environ.copy()

#set PYTHONPATH to match this scripts sys.path
myenv['PYTHONPATH'] = pypath

#setup a python command to echo the sys.path
command = 'python C:/pytest/test_subprocess.py'

#launch the subprocess with …
Run Code Online (Sandbox Code Playgroud)

python subprocess pythonpath

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

如何计算没有循环的矩阵的欧氏长度?

似乎答案应该很简单,但我很难过.我有一个Nx3矩阵矩阵,其中第1和第3列是第n项的XY和Z坐标.我想计算从原点到物品的距离.在非矢量化形式中,这很容易.

距离= norm([xyz]);

要么

距离= sqrt(x ^ 2 + y ^ 2 + z ^ 2);

但是,在矢量化形式中它并非如此简单.当你传递一个矩阵来规范时,它不再返回欧几里德长度.

距离=范数(矩阵); %不起作用

distance = sqrt(x(:,1).*x(:,1)+ y(:,2).*y(:,2)+ z(:,3).*z(:,3)); %只是看起来很乱

有一个更好的方法吗?

matlab distance vectorization norm euclidean-distance

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

使用流处理程序记录消息在控制台中显示为红色

我使用以下代码设置了一个记录器

def setup_logging():
    import logging
    import logging.handlers
    import os
    #from time import gmtime, strftime
    #import logging.handlers

    logger = logging.getLogger('apt')
    logger.setLevel(logging.DEBUG)

    # create file handler
    fh = logging.handlers.RotatingFileHandler(os.path.join('..','logs','apt.log'), maxBytes=1000000, backupCount=5)
    fh.setLevel(logging.DEBUG)

    # create console handler
    ch = logging.StreamHandler()
    ch.setLevel(logging.DEBUG)

    # create formatter and add it to the handlers
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    ch.setFormatter(formatter)
    fh.setFormatter(formatter)

    # add the handlers to logger
    logger.addHandler(ch)
    logger.addHandler(fh)
Run Code Online (Sandbox Code Playgroud)

将日志消息打印到文件和控制台(这就是我所追求的).唯一的问题是控制台消息是红色的.这让人分心,因为红色使一切看起来像一个错误(当它只是信息).如何更改它以使控制台消息的颜色不同?

理想情况下,黑色用于调试和信息,红色用于警告及以上.

我正在使用Eclipse和PyDev.

python

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

Simulink:在类似调试的模式下进行模拟

我在Simulink上有另一个问题:

是否可以在运行期间暂停模拟?通过"单位延迟"构建了几个步骤后,我想在下一步完成之前暂停我的模拟(用于显示用户要查看的值).之后 - 让我们说 - 单击模拟将继续一步并重复该过程.最后,这应该具有某种调试功能.

我不是很坚定如何实现这一目标.我想在模拟参数的某处,但在哪里以及如何?

debugging matlab simulink

3
推荐指数
1
解决办法
2982
查看次数

在列表中的每个项目上调用.ToString()方法的正确方法是什么?

我有一个实现.ToString()方法的对象列表.我期望找到一个非常容易为列表中的每个项调用.ToString()方法,并获得字符串列表.

这是一种在foreach中完成它的方法.

List<string> entityNames = new List<string>();
foreach (Entity parent in parents)
{
    entityNames.Add(parent.ToString());
}
Run Code Online (Sandbox Code Playgroud)

这是我想出的最好的,有更好的方法吗?

IList<string> entityNames2 = (from parent in parents where true select user.ToString()).ToList();
Run Code Online (Sandbox Code Playgroud)

c# list-comprehension

0
推荐指数
1
解决办法
114
查看次数