在 MATLAB 中将大数组限制为一维

Limiting large array to 1D in MATLAB

我正在处理 XShooter 数据和星系校正,我在 MATLAB 中使用 ccm_unred。问题是

funred = flux*10.^(0.4*A_lambda);

这行代码生成一个29686 X 29686 double数组。我只想要它的一侧,我可以通过将 funred 重新分配为 funred = funred(:,1) 来实现,但是这段代码也需要 57 seconds 来执行并用完我的 CPU 和RAM 太多,我的笔记本电脑无法保持稳定。有什么方法可以从一开始就将 funred 的生成限制为 (:,1) 吗?

你说你的代码生成了一个 29686 X 29686 的矩阵,但是你在方程中进行了 element-wise 运算。这意味着 fluxA_lambda 的胸围为 29686 X 29686。只需将那个尺寸的切片切成薄片!

假设其中之一是 29686 X 29686

funred = flux(:,1)*10.^(0.4*A_lambda(:,1));

只需删除不是矩阵的 (:,1)

如果两个都是矩阵,那就不行,因为flux*...需要整个矩阵才能运算