矩阵的方向导数
Directional Derivatives of a Matrix
我的工作区中有 40 个结构。我需要编写一个脚本来计算所有元素的方向导数。这是代码:
[dx,dy] = gradient(Structure_element_1.value);
dxlb = min(min(dx));
dxub = max(max(dx));
dylb = min(min(dy));
dyub = max(max(dy));
[ddx,ddy] = gradient(gradient(Structure_element_1.value));
ddxlb = min(min(ddx));
ddxub = max(max(ddx));
ddylb = min(min(ddy));
ddyub = max(max(ddy));
这是一个元素的代码。我需要为所有 40 个元素找出相同的元素,然后再使用它。谁能帮忙解决这个问题。
要回答你的字面问题,你应该将变量存储在 structure array or at least a cell array 中。如果所有结构都具有相同的字段,则可以通过索引单个数组变量来访问所有这些字段,比如 Structure_element
:
for i = 1:numel(Structure_element)
field = Structure_element(i).value
% compute gradients of field
end
现在解决实际梯度计算的问题。 gradient
函数计算
的近似值,其中
是您的数据矩阵。通常,MATLAB 函数知道请求了多少输出参数。当您调用 gradient(gradient(F))
时,会在内部 gradient
调用的 first 输出上调用外部 gradient
。这意味着您当前获得的是
.
的近似值
我怀疑你真的想得到
。为此,您必须从对 gradient
的内部调用中获取两个输出,将它们分别传递给
外部调用,并选择正确的输出:
[dx,dy] = gradient(F);
[ddx, ~] = gradient(dx);
[~, ddy] = gradient(dy);
注意分开的电话。 tilde was introduced as a way to ignore function arguments in MATLAB Release 2009b。如果您有旧版本,只需使用名为 junk
或类似名称的实际变量。
我的工作区中有 40 个结构。我需要编写一个脚本来计算所有元素的方向导数。这是代码:
[dx,dy] = gradient(Structure_element_1.value);
dxlb = min(min(dx));
dxub = max(max(dx));
dylb = min(min(dy));
dyub = max(max(dy));
[ddx,ddy] = gradient(gradient(Structure_element_1.value));
ddxlb = min(min(ddx));
ddxub = max(max(ddx));
ddylb = min(min(ddy));
ddyub = max(max(ddy));
这是一个元素的代码。我需要为所有 40 个元素找出相同的元素,然后再使用它。谁能帮忙解决这个问题。
要回答你的字面问题,你应该将变量存储在 structure array or at least a cell array 中。如果所有结构都具有相同的字段,则可以通过索引单个数组变量来访问所有这些字段,比如 Structure_element
:
for i = 1:numel(Structure_element)
field = Structure_element(i).value
% compute gradients of field
end
现在解决实际梯度计算的问题。 gradient
函数计算 的近似值,其中
是您的数据矩阵。通常,MATLAB 函数知道请求了多少输出参数。当您调用
gradient(gradient(F))
时,会在内部 gradient
调用的 first 输出上调用外部 gradient
。这意味着您当前获得的是 .
我怀疑你真的想得到。为此,您必须从对
gradient
的内部调用中获取两个输出,将它们分别传递给
外部调用,并选择正确的输出:
[dx,dy] = gradient(F);
[ddx, ~] = gradient(dx);
[~, ddy] = gradient(dy);
注意分开的电话。 tilde was introduced as a way to ignore function arguments in MATLAB Release 2009b。如果您有旧版本,只需使用名为 junk
或类似名称的实际变量。