小编joh*_*hen的帖子

makefile 模式规则:单个通配符,先决条件中的多个实例

希望这是一个关于 make 模式规则的基本问题:我想在规则的先决条件中多次使用通配符,即在我的 Makefile 中我有

data/%P1.m: $(PROJHOME)/data/%/ISCAN/%P1.RAW
        @echo "  Writing temporary matlab file for $*"
        # do something

data/%P2.m: $(PROJHOME)/data/%/ISCAN/AGP2.RAW
            @echo "  Writing temporary matlab file for $*"
            # do something
Run Code Online (Sandbox Code Playgroud)

在此示例中,我尝试在通配符 % 为 AG 时调用 make。两个文件 $(PROJHOME)/data/AG/ISCAN/AGP1.RAW 和 $(PROJHOME)/data/AG/ISCAN/AGP2.RAW 都存在。我尝试以下 make 命令并获得此输出:

[jshen@iLab10 gender-diffs]$ make data/AGP1.m
make: *** No rule to make target `data/AGP1.m'.  Stop.

[jshen@iLab10 gender-diffs]$ make data/AGP2.m
Writing temporary matlab file for AG, part 2...

[jshen@iLab10 gender-diffs]$ ls data/AG/ISCAN/AG*
data/AG/ISCAN/AGP1.RAW  data/AG/ISCAN/AGP2.RAW
Run Code Online (Sandbox Code Playgroud)

如何在第一个 make 规则中实现同一个通配符的多个实例?

design-patterns makefile wildcard

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

matlab quickie:测试文本文件是否为空

简单的问题:我在matlab 7.x中打开一个文件,我想在读它之前测试它是否为空.最好的方法是什么?

file-io matlab

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

matlab fxn:在struct数组中找到连续的区域和返回边界

对于那里的matlab大师来说这是半个问题和半个挑战:我想让一个函数接受逻辑数组(false/true)并给出包含trues的所有连续区域的开头和结尾struct数组.
像这样的东西:

b = getBounds([1 0 0 1 1 1 0 0 0 1 1 0 0])
Run Code Online (Sandbox Code Playgroud)

应该回来

b = 3x1 struct array with fields:  
beg   
end
Run Code Online (Sandbox Code Playgroud)

>> b(2)

ans = 

   beg: 4

   end: 6
Run Code Online (Sandbox Code Playgroud)

我已经有了一个实现,但我真的不知道如何处理struct数组,所以我想问你怎么做 - 我必须通过mat2cell处理,当我必须处理更大的struct时数组变得很麻烦.我看起来像这样:

df = diff([0 foo 0]);

a = find(df==1); l = numel(a); 
a = mat2cell(a',ones(1,l)) 
[s(1:l).beg] = deal(a{:});

b = (find(df==-1)-1); 
b = mat2cell(b',ones(1,l)) 
[s(1:l).end] = deal(b{:});
Run Code Online (Sandbox Code Playgroud)

matlab

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

标签 统计

matlab ×2

design-patterns ×1

file-io ×1

makefile ×1

wildcard ×1