假设我想在MATLAB中初始化一维,长度 - N
实数数组,其中N
足够大,这个问题很重要。我稍后会覆盖这些值,所以我主要关注的是声明。
我可以通过两种方式做到这一点:
arrayA = zeros(1,N);
<案例B
arrayB = zeros(N,1);
使用上述两种方法的性能考虑因素是什么?
出于这个问题的目的,我们假设数组“足够大,可以用于任何可能重要的事情”,并且在给定的程序中可能有许多这样的数组。
答案 0 :(得分:1)
我不能发誓,但我的理解是,你的问题的答案是否,不,不,也许。
我的理解是基础对象是矩阵对象,它包含(在许多其他事物中)标识矩阵对象的宽度和高度的值,以及存储在对象中的值的数组。因此,无论(n,1)还是(1,n),都会初始化这些值中的每一个,并占用相同数量的值和相同的时间来分配和访问。
对于你的“其他考虑”,你需要用矩阵M并在MATLAB中用M(:)
“向量化它”,然后结果将是(N,1)的向量。通常,如果我有一个输入向量的函数,我将始终确保它是一个垂直向量(N,1),并且有信心,如果我让它与其他向量交互,它将采用该“基本”格式。 / p>