小编Pha*_*hab的帖子

在Notepad ++中对齐字符

我只是想知道为什么当我使用Notepad ++而不是内置的MATLAB编辑器打开它们时,来自MATLAB的m文件看起来如此不同.

似乎在MATLAB编辑器中每个字符具有相同的宽度.在Notepad ++中并非如此(即使我将语言更改为"M").

这是在Notepad ++(左)和MATLAB编辑器(右)中打开的文件的屏幕截图.

在此输入图像描述

在MATLAB编辑器中,X列中的所有字符都正好在另一个之下.它们不在Notepad ++中.

我只是玩了一下标签首选项,没有任何成功.

有没有办法让Notepad ++中的列对齐方式与MATLAB编辑器相同...至少对于m文件?

matlab notepad++ alignment vertical-alignment text-alignment

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

按名称获取结构数据(Matlab)

有没有一种简单的方法可以通过搜索他的名字从结构中获取数据?

我在考虑这样的结构:

test = struct('A', ...
[struct('Name','Adam','Data',[1 2 3]) ...
struct('Name','Eva','Data',[11 12 13])]);
Run Code Online (Sandbox Code Playgroud)

现在我想通过搜索'Adam'或'Eva'来访问Data字段.

这样的事情:

getStructDataByName(test,'Adam')
Run Code Online (Sandbox Code Playgroud)

有人知道一个脚本或有没有想法这样做而不需要太多努力?

编辑:

这是我目前的解决方案:

function getDataByName(struct,fieldname)

    names = getAllDataNames(struct);

    thisIdx = strcmp(names,fieldname);
    % or
    % thisIdx = ismember(names,fieldname);

    struct.A(thisIdx).Data

end


function names = getAllDataNames(struct)

    for idx = 1:length(struct.A)
        names(idx,:) = {struct.A(idx).Name};
    end

end
Run Code Online (Sandbox Code Playgroud)

我应该使用strcmp()还是ismember()?

matlab struct

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