我对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); 但它没有用。
任何建议都非常感谢。
答案 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);
});
,B
和C
设置为E
所分配的内容。请注意,我已经更改了将A
分配给D
的最后一行,因为您将在此声明之前重新定义E
。我假设这不是你的意图。另请注意,D
是无意义的zeros(length(D), D)
我假设是某个向量,但您将其用作D
的参数。您需要确保每个参数都是标量。
请记住,MATLAB执行矩阵的副本并且没有提供参考(这里有例外,但我们现在还没有进入)。这样的事情会起作用:
zeros
但是,如果您真的想在一行中执行此操作,则可以使用deal
获取单个参数并将其复制到您指定的每个输出参数上:
A = zeros(10, 10);
B = A; C = A; E = A;
我认为它的可读性较差,但它可以满足您的要求。