queryWrapper.orderByDesc("qmrylx"); AdminInspectionResultDisposalInfoResultConfirmReq rep = BeanUtil.convertBean2Bean(adminInspectionResultDisposalInfo, AdminInspectionResultDisposalInfoResultConfirmReq.class); 解读
时间: 2024-04-03 08:33:13 浏览: 40
这段代码的作用是在查询条件`queryWrapper`中按照`qmrylx`字段进行降序排列。`BeanUtil.convertBean2Bean()`是一个Java Bean之间相互转换的工具方法,这里将`adminInspectionResultDisposalInfo`对象转换为`AdminInspectionResultDisposalInfoResultConfirmReq`对象,并将转换后的结果赋值给变量`rep`。其中,`AdminInspectionResultDisposalInfoResultConfirmReq`是一个数据传输对象(DTO),用于在不同层之间传输数据。
相关问题
[a1, b1] = meshgrid(1:jx, 1:jy); JSX = a1 .* gj - r0; %计算点x坐标 JSY = b1 .* gj; %计算点y坐标 [j, k] = meshgrid(1:nj, 1:nj); z = (j-1) .* dz .* (j~=nj) + (nj-1) .* dz .* (j==nj); a = (2.*k-3) .* dz .* 0.5 .* (k~=nj) + 0 .* (k==1) + (H-dz/2) .* (k==nj); b = (2.*k-1) .* dz .* 0.5 .* (k~=1) + dz/2 .* (k==1) + H .* (k==nj); for ii=1:zks %钻孔数 SLX=ZK(ii,1); SLY=ZK(ii,2); rr=sqrt((SLX-JSX).^2+(SLY-JSY).^2); Xt=JSX-SLX; %计算点到钻孔的x距离 end将for循环部分广播运算
可以使用矩阵运算来代替for循环,从而实现矩阵化计算。具体实现如下:
```
SLX = ZK(:, 1); % 取出所有钻孔的x坐标
SLY = ZK(:, 2); % 取出所有钻孔的y坐标
Xt = bsxfun(@minus, JSX, SLX'); % 计算点到钻孔的x距离
Yt = bsxfun(@minus, JSY, SLY'); % 计算点到钻孔的y距离
rr = sqrt(Xt.^2 + Yt.^2); % 计算点到钻孔的距离
JSX_rep = repmat(JSX, zks, 1); % 将点的x坐标复制zks遍
JSY_rep = repmat(JSY, zks, 1); % 将点的y坐标复制zks遍
SLX_rep = repmat(SLX, 1, jx*jy); % 将钻孔的x坐标复制jx*jy遍
SLY_rep = repmat(SLY, 1, jx*jy); % 将钻孔的y坐标复制jx*jy遍
z_rep = repmat(z(:)', jx*jy, 1); % 将z向量复制jx*jy遍
a_rep = repmat(a(:)', jx*jy, 1); % 将a向量复制jx*jy遍
b_rep = repmat(b(:)', jx*jy, 1); % 将b向量复制jx*jy遍
Xt_rep = repmat(Xt(:), 1, nj); % 将Xt矩阵复制nj遍
Yt_rep = repmat(Yt(:), 1, nj); % 将Yt矩阵复制nj遍
k_rep = repmat(k(:)', jx*jy*zks, 1); % 将k向量复制jx*jy*zks遍
JSX_rep = JSX_rep(:); % 将JSX_rep矩阵展开成列向量
JSY_rep = JSY_rep(:); % 将JSY_rep矩阵展开成列向量
SLX_rep = SLX_rep(:); % 将SLX_rep矩阵展开成列向量
SLY_rep = SLY_rep(:); % 将SLY_rep矩阵展开成列向量
z_rep = z_rep(:); % 将z_rep矩阵展开成列向量
a_rep = a_rep(:); % 将a_rep矩阵展开成列向量
b_rep = b_rep(:); % 将b_rep矩阵展开成列向量
Xt_rep = Xt_rep(:); % 将Xt_rep矩阵展开成列向量
Yt_rep = Yt_rep(:); % 将Yt_rep矩阵展开成列向量
k_rep = k_rep(:); % 将k_rep矩阵展开成列向量
rr_rep = repmat(rr(:), 1, nj); % 将rr矩阵复制nj遍
rr_rep = rr_rep(:); % 将rr_rep矩阵展开成列向量
% 计算系数矩阵
A = (z_rep.^2 ./ (z_rep.^2 + Xt_rep.^2 + Yt_rep.^2)) .* log(sqrt(z_rep.^2 + Xt_rep.^2 + Yt_rep.^2) + z_rep) ...
- (z_rep - a_rep) .* (z_rep + a_rep) ./ ((z_rep + a_rep).^2 + Xt_rep.^2 + Yt_rep.^2) ...
- (z_rep - b_rep) .* (z_rep + b_rep) ./ ((z_rep + b_rep).^2 + Xt_rep.^2 + Yt_rep.^2);
% 计算位势值
phi = sum(A .* rr_rep ./ k_rep);
% 将位势值矩阵恢复成原始大小
phi = reshape(phi, jx, jy);
```
这里将点到所有钻孔的距离矩阵rr进行了广播运算,然后将多个矩阵复制成相应的大小,并展开成一维列向量,最后进行矩阵运算,计算出位势值矩阵phi。
def forward(self, g, feat): with g.local_scope(): g.ndata['h'] = feat g.update_all(self.message_func1, fn.mean(msg='m', out='h')) # g.update_all(self.message_func2, fn.mean(msg='m', out='h')) node_rep = g.ndata['h'] if self.layer_norm: node_rep = self.layer_norm_weight(node_rep) if self.bias: node_rep = node_rep + self.h_bias if self.self_loop: h = self.node_ME(feat, feat) node_rep = node_rep + h if self.activation: node_rep = self.activation(node_rep) node_rep = self.dropout(node_rep) return node_rep
这段代码是 GNNLayer 中的 `forward` 方法的实现。
`` 方法用于执行 GNNLayer 的前向计算。首先,通过 `g.local_scope()` 创建一个本地作用域以确保计算的中结果不会影响其他计算。然后,将输入特征 `feat` 存储在图 `g` 的节点特征字典 `ndata` 中的键 `'h'` 下。
接下来,使用 `g.update_all(self.message_func1, fn.mean(msg='m', out='h'))` 对图 `g` 中的所有边进行消息传递,并使用 `mean` 函数对接收到的消息进行聚合,然后将结果存储在节点特征字典 `ndata` 的键 `'h'` 中。
随后,根据需要对节点特征进行一系列操作。如果 `layer_norm` 为真,则对节点特征进行层归一化操作。如果 `bias` 为真,则对节点特征添加偏置项。如果 `self_loop` 为真,则使用 `node_ME` 对输入特征进行记忆编码,并将结果与节点特征相加。接着,如果提供了激活函数,则对节点特征进行激活操作。最后,对节点特征进行 `dropout` 操作,并将结果返回。
这段代码展示了 GNNLayer 中前向计算的具体实现。在前向计算过程中,首先进行消息传递和聚合操作,然后根据需要对节点特征进行一系列的转换和操作,最终得到更新后的节点表示。这个方法用于更新图神经网络中每一层节点的表示,并将结果传递给下一层进行进一步的计算。
阅读全文