我为格式化道歉,这似乎是一个非常简单的问题.我是matlab和这个堆栈交换的新手.我试图从matlab中的几个列向量创建一个邻接矩阵.信息是从文本文件导入的.信息看起来像这样.
X Y Z W
aa bb 1 aa
bb cc 2 bb
cc dd 3 cc
Run Code Online (Sandbox Code Playgroud)
其中列X和Y是顶点列的名称.Z是重量.列X和Y有关于30000条目,重复.列W是我的图形中的所有顶点按字母顺序排序而不重复.对于样本数据,输出应如下所示.
aa bb cc dd
aa 0 1 0 0
bb 1 0 2 0
cc 0 2 0 3
dd 0 0 3 0
Run Code Online (Sandbox Code Playgroud)
我知道如果顶点是数字的话如何创建矩阵.但我无法弄清楚如何将数值赋给列中的顶点W并使所有内容仍然匹配.
如果所有列中的值都是数字,则此代码将起作用.
A = sparse([X; Y],[Y; X],[Z; Z]);
Run Code Online (Sandbox Code Playgroud)
凡X, Y和Z高于列.当我尝试这个时,我得到以下错误
'Undefined function 'sparse' for input arguments of type …Run Code Online (Sandbox Code Playgroud) 我想让我的目标有条件依赖。下面是一个不起作用的例子
everything: foo bar \
ifndef EXTRA
biz baz
endif
recipe_to_do_stuff
Run Code Online (Sandbox Code Playgroud)
因此,如果我运行make它,它将everything包含所有依赖项foo bar biz baz。但是,如果我运行make EXTRA=true它只会everything使用foo bar.
这是一种可能性吗?我可以有运行两个单独命令的条件,但我的目标有很多可能的依赖项,如果需要更新,我不希望有两个地方可以更改。提前致谢。