簡體   English   中英

Matlab。 在3D陣列中存儲2D陣列

[英]Matlab. Storing 2D arrays within 3D arrays

我定義了以下2D函數,

Ngrid = 100;
h     = 1/(Ngrid-1);
x     = 0:h:1;
y     = 0:h:1;
[x y] = meshgrid(x,y);
f = exp(-((1-x).^2)./0.45)

我想將這個函數存儲在3D數組“ c”中,以及“ T”維度中,

k    = 0.001;
Tend = 1; 
T    = 0:k:Tend;
c    = zeros(length(T),length(x),length(y));

我試過的是

c(1:end,:,:) = f;

但它不起作用。 ¿關於如何在3D陣列中存儲相同功能的任何想法?

提前致謝。

下標尺寸不匹配是因為您試圖將100 * 100元素壓縮到1001 x 100 x 100矩陣中。

您可以通過以下方式進行此分配:

c(1,:,:) = f;
c(2,:,:) = f;
...
c(1001,:,:) = f;

但是您可以使用repmat完成相同的操作

c = repmat(reshape(f, [1, size(f)]), [numel(T), 1 1]);

bsxfun

c = bsxfun(@plus, zeros(numel(T), 1), reshape(f, [1, size(f)]));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM