小编Mar*_*arc的帖子

如何让git忽略对文件的未来修订?

我创建了一个包含在git存储库中的文件的默认版本.重要的是,当某人克隆存储库时,他们会获得此文件的副本.但是,我想设置git,以便稍后忽略对此文件的更改. .gitignore仅适用于未跟踪的文件.

我的动机是这个文件包含机器特定的信息.我想提供默认值,同时允许人们进行不会被推回原始存储库的本地更改,从而在我们提取新更改时创建合并冲突.

我们通常非常懒惰并且使用git add .很多,所以我很确定如果我不能告诉git忽略这个文件,对它的更改将最终得到提交和推送.

总结一下,

  1. 我想创建一个文件,调用它default_values.txt添加到我的git存储库,并在有人克隆该存储库时包含该文件.
  2. git add .不应该添加default_values.txt到提交.
  3. 应将此行为传递给存储库的任何克隆.

git gitattributes

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

如何判断句柄对象在matlab中使用了多少内存

如果我声明一个对象是句柄classdef的子类obj <handle我的对象现在基本上是某个某处内存的"指针".如何找出对象耗尽的内存量?

例如,假设我有一个带字段栏的类foo

classdef foo < handle 
properties
    bar = randn(1000);
end
Run Code Online (Sandbox Code Playgroud)

bar需要8兆字节(8字节*100万个数字)

但如果我输入

obj = foo();
whos('obj');
Run Code Online (Sandbox Code Playgroud)

我明白了

Name      Size            Bytes  Class    Attributes

  obj      1x1                60  foo                
Run Code Online (Sandbox Code Playgroud)

我如何找出obj指向的总内存量?

matlab class object handle matlab-class

15
推荐指数
1
解决办法
4667
查看次数

MATLAB在函数的最后一行之后需要很长时间

我有一个需要很长时间才能运行的功能.当我对它进行分析时,我发现超过一半的时间(50秒中的26个)没有计入逐行时序故障,我可以证明在函数完成运行之后但在它返回控制之前花费的时间通过以下方法:

ts1 = tic;
disp ('calling function');
functionCall(args);
disp (['control returned to caller - ', num2str(toc(ts1))]); 
Run Code Online (Sandbox Code Playgroud)

我调用的函数的第一行是ts2 = tic,最后一行是

disp (['last line of function- ', num2str(toc(ts2))]);
Run Code Online (Sandbox Code Playgroud)

结果是

调用功能

最后一行功能 - 24.0043

控制权返回给来电者 - 49.857

在互联网上闲聊,我认为这是MATLAB管理内存的方式的症状.它在函数返回时释放,有时这需要很长时间.该函数确实分配了一些大的(~1百万个元素)数组.它也适用于句柄,但不会显式创建任何新的句柄对象或存储句柄.我的问题是:

  1. 这绝对是一个内存管理问题吗?
  2. 有没有诊断是什么原因造成的问题在此功能,而不是别人很快地返回任何系统的方式?
  3. 是否有减少的时间花费MATLAB在函数退出清理量的一般技巧?

matlab garbage-collection memory-management

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

确定弯曲细长区域的中线

想象一下,我有一个热狗的二维图像.我可以在两端的热狗上划一条直线.称之为中线.它的一个特性是它是(2D)热狗具有最低惯性矩的轴.

现在,如果我将热狗弯成弧形,这条中线也会扭曲.

鉴于弯曲的热狗的图片,我如何确定这个弯曲的中线?该算法应该容忍图像中适量的噪声.

language-agnostic geometry image-processing

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

将文本放入MATLAB中的非活动Axes中

例如,大多数MATLAB绘图命令允许您指定要作用的轴

plot (x,y) 
Run Code Online (Sandbox Code Playgroud)

在当前轴上绘制,但是

plot(Ax, x, y) 
Run Code Online (Sandbox Code Playgroud)

将在Ax轴上绘制.

同样,您可以标记非活动轴的x轴或y轴

xlabel(Ax, 'this label goes on the x-axis of Ax whether or not Ax == gca')
Run Code Online (Sandbox Code Playgroud)

但text命令似乎不支持此功能.有没有办法将文本放入非活动轴?

我问因为这个顺序:

currentAxes = gca;
axes(Ax); %MLINT warning here
text(x,y,'this text ends up on axes Ax now');
axes(currentAxes); %MLINT warning here
Run Code Online (Sandbox Code Playgroud)

将抛出MLINT警告,在脚本函数中调用轴(axes_handle)很慢.

matlab plot text axes mlint

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

在matlab中关闭GUI时执行的函数

我正在使用指南在matlab中创建GUI.它是非阻塞的(不是呼叫uiwait).当gui窗口关闭时,我想执行一些清理代码.

是否有一个gui_ClosingFcn回调我应该类似于gui_OpeningFcn指南为我创建的模板定义?

matlab user-interface matlab-guide

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

如何将颜色名称转换为3元素RGB矢量?

在许多MATLAB绘图功能中,您可以将颜色指定为字符串或直接列出红色,绿色和蓝色值的3元素矢量.

例如,这两个陈述是等价的:

plot(x, y, 'Color', 'r');
plot(x, y, 'Color', [1 0 0]);
Run Code Online (Sandbox Code Playgroud)

有8种颜色可以用字符串值指定:'r','g','b','c','m','y','k','w'.是否有MATLAB内置函数将这些字符串转换为等效的RGB矢量?

rgb matlab colors

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

在matlab中向对象动态添加字段

假设我在类文件中定义了MATLAB对象

classdef foo

   properties
      bar
   end

end
Run Code Online (Sandbox Code Playgroud)

我创建了一个foo对象

myfoo = foo();
Run Code Online (Sandbox Code Playgroud)

现在我想动态地向foo添加另一个字段.我想要的是

myfoo.newfield = 42;
Run Code Online (Sandbox Code Playgroud)

但这会引发错误.

我知道有一种方法可以动态地将字段/属性添加到MATLAB对象中,但我无法记住它或在帮助中轻松找到它.有谁知道语法?

oop matlab

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

如何在MATLAB中动态访问结构字段的字段?

我对访问一个字段的一般问题很感兴趣,该字段可能埋藏在包含结构中的任意数量的级别.下面是使用两个级别的具体示例.

假设我有一个结构toplevel,我在MATLAB命令行中定义了以下结构:

midlevel.bottomlevel = 'foo';
toplevel.midlevel = midlevel;
Run Code Online (Sandbox Code Playgroud)

我可以midlevel通过将字段名称作为字符串传递来访问结构,例如:

fieldnameToAccess = 'midlevel';
value = toplevel.(fieldnameToAccess);
Run Code Online (Sandbox Code Playgroud)

但我无法bottomlevel以相同的方式访问结构 - 以下是无效的语法:

fieldnameToAccess = 'midlevel.bottomlevel';
value = toplevel.(fieldnameToAccess); %# throws ??? Reference to non-existent field 'midlevel.bottomlevel'
Run Code Online (Sandbox Code Playgroud)

我可以编写一个fieldnameToAccess查看句点的函数,然后递归迭代以获得所需的字段,但我想知道是否有一些聪明的方法来使用MATLAB内置函数来直接获取字段值.

matlab matlab-struct

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

在MATLAB中将项目排序到bin中

如果我有一组数据Y和一组以X为中心的箱子,我可以使用HIST命令查找每个箱子中每个Y的数量.

N = hist(Y,X)
Run Code Online (Sandbox Code Playgroud)

我想知道的是,如果有内置函数可以告诉我每个Y进入哪个bin,那么

[N,I] = histMod(Y,X)
Run Code Online (Sandbox Code Playgroud)

意味着Y(I == 1)将返回bin 1中的所有Y,等等.

我知道如何编写这个函数,所以我只是想知道MATLAB中是否已经内置了这个函数.

sorting matlab histogram binning

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