在Matlab中具有相同大小的变量realloaction

时间:2016-10-13 19:10:25

标签: matlab variables

我对Matlab代码不是很专业,所以目前我正在使用它进行编码,我很想知道是否有一种简单的方法可以在matlab中实现相同大小的变量: 如:

 A=zeros(length(D),D);
 B=zeros(length(D),D);
 C=zeros(length(D),D);
 D=zeros(length(D),D);

这是由具有可变大小的for循环产生的矩阵。 这种方式很好,但有一种简单的方法可以在一行中做到这一点吗? 我试过[A,B,C,D] =零(长度(D),D); 但它没有用。

任何建议都非常感谢。

1 个答案:

答案 0 :(得分:0)

在MATLAB中编码时,我的建议是始终代码以提高可读性。一旦你开始工作,那么如果你能真正评估代码中的优化是否会使它更快,那么继续优化。但是,我认为在一行代码中进行这些分配并不能真正优化任何内容。

你在那里有什么问题?这是一套完全有效的陈述,您不需要在一行中完成。如果您害怕打字,可以随时将zip.file(filename) .async("arraybuffer") .then(function(content) { console.log(content); var buffer = new Uint8Array(content); var blob = new Blob([buffer.buffer]); console.log(blob); var img = new Image; img.onload = function() { document.body.appendChild(this) } img.src = URL.createObjectURL(blob); }, function(e) { console.log("Error reading " + file.name + " : " + e.message); }); BC设置为E所分配的内容。请注意,我已经更改了将A分配给D的最后一行,因为您将在此声明之前重新定义E。我假设这不是你的意图。另请注意,D是无意义的zeros(length(D), D)我假设是某个向量,但您将其用作D的参数。您需要确保每个参数都是标量。

请记住,MATLAB执行矩阵的副本并且没有提供参考(这里有例外,但我们现在还没有进入)。这样的事情会起作用:

zeros

但是,如果您真的想在一行中执行此操作,则可以使用deal获取单个参数并将其复制到您指定的每个输出参数上:

A = zeros(10, 10);
B = A; C = A; E = A;

我认为它的可读性较差,但它可以满足您的要求。