Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Matlab。在三维阵列中存储二维阵列_Arrays_Matlab_Matrix - Fatal编程技术网

Arrays Matlab。在三维阵列中存储二维阵列

Arrays Matlab。在三维阵列中存储二维阵列,arrays,matlab,matrix,Arrays,Matlab,Matrix,我已经定义了以下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(

我已经定义了以下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
元素压缩到
1001x100
矩阵中

您可以通过以下方式完成此任务:

c(1,:,:) = f;
c(2,:,:) = f;
...
c(1001,:,:) = f;
但是你也可以通过使用


您的功能
f
仅取决于
x
(无
y
)。。这真的是一个2d函数吗?它不工作是什么意思?是的,它是一个100x100数组,因为x是由meshgrid生成的。此外,如果您不使用surf(f),则它是一个2D函数,尽管它与y坐标无关。我想做的是将这个100x100数组存储在c(沿T)的每个位置。我得到的错误是典型的“下标赋值维度不匹配”。对不起,我对2D和3D模型完全不熟悉。非常感谢!!现在代码工作了;我理解我的错误。
c = repmat(reshape(f, [1, size(f)]), [numel(T), 1 1]);
c = bsxfun(@plus, zeros(numel(T), 1), reshape(f, [1, size(f)]));