質問Bのコード:
温室サイズの%
長さ_温室 = 10; %m
幅_グリーンハウス = 3; %m
高さ_温室 = 2; %m
% ファンパラメータの詳細については、公開アカウント「Analog Kitty」を参照してください。
ファンの位置 = [0, width_greenhouse/2, 1.3]; % [x, y, z] 位置
fan_size = [0.5, 0.5]; % ファン サイズ
ファン速度 = 2; % MS
fan_angle = 40; % ファンの空気供給方向
離散化された温室スペースの割合 (%)
dx = 0.1; % 空間ステップ サイズ
それ = 0.1;
dz = 0.1;
[x, y, z] = メッシュグリッド(0:dx:長さ_グリーンハウス, 0:dy:幅_グリーンハウス, 0:dz:高さ_グリーンハウス);
% 風速フィールドを初期化します。詳細については、公開アカウントを参照してください: Digital Analog Kitty
u = ゼロ(サイズ(x));
v = ゼロ(サイズ(y));
w = ゼロ(サイズ(z));
% 風速フィールドの計算
i = 1:size(x, 1) の場合
j = 1:size(x, 2) の場合
k = 1の場合:size(x, 3)
% 点からファンまでの距離と方向を計算します。
r = [x(i, j, k) - ファンの位置(1), y(i, j, k) - ファンの位置(2), z(i, j, k) - ファンの位置(3)];
r_magnitude = ノルム(r);
r_unit = r / r_magnitude;
% ポイントの速度成分を計算します
theta = acosd(dot(r_unit, [1, 0, 0])); % ファンの空気供給方向と X 軸との間の角度
fan_velocity_component = fan_velocity * cosd(fan_angle - theta);
% さらに更新された風速フィールドについては、公開アカウントを参照してください: Digital Analog Kitty
u(i, j, k) = fan_velocity_component * r_unit(1);
v(i, j, k) = fan_velocity_component * r_unit(2);
w(i, j, k) = fan_velocity_component * r_unit(3);
終わり
終わり
終わり
% 風速フィールドを描画します
quiver3(x, y, z, u, v, w);
xlabel('X(m)');
ylabel('Y(m)');
zlabel('Z(m)');
title('温室の風速分布');
% z=0.5 に最も近いインデックスを検索します。
z_index = find(abs(z - 0.5) < dz/2, 1);
% z_index が妥当な範囲内であることを確認してください
z_index = max(min(z_index, size(z, 3)), 1);
% z=0.5 の断面図を描く 詳細については、公開アカウントを参照してください: Digital Analog Kitten
形;
quiver(squeeze(x(:,:,z_index))、squeeze(y(:,:,z_index))、squeeze(u(:,:,z_index))、squeeze(v(:,:,z_index))、 'k');
xlabel('X(m)');
ylabel('Y(m)');
title('温室の z=0.5 での風速分布');
質問Cコード:
% サンプルデータの生成
rng(42); % 再現性を確保するために乱数シードを設定します。
n = 100; % サンプルサイズ
X1 = randn(n, 1); % 最初の独立変数
X2 = randn(n, 1); % 第 2 独立変数
X3 = randn(n, 1); % 3 番目の独立変数の詳細については、公開アカウント「Digital Analog Kitten」を参照してください。
X4 = randn(n, 1); % 4 番目の独立変数
Y = 2*X1 + 3*X2 + 1.5*X3 - 0.5*X4 + randn(n, 1); % 従属変数、ノイズあり
% データをテーブルに入れる
data = table(X1, X2, X3, X4, Y, 'VariableNames', {'X1', 'X2', 'X3' 、'X4'、'Y'});
% 重回帰分析
mdl = fitlm(データ, 'Y ~ X1 + X2 + X3 + X4');
% 回帰分析の概要を表示
disp(mdl);
% 回帰係数を表示
disp('回帰係数:');
disp(mdl.Coefficients.Estimate);
% 散布図と回帰曲面を描画します
形;
持続する;
% 回帰直線のパラメータを取得します
ベータ = mdl.Coefficients.Estimate;
% 回帰曲面を描画するためのグリッド データを生成します。詳細については、公開アカウントを参照してください: Digital Analog Kitten
[x1, x2, x3] = メッシュグリッド(min(data.X1):0.1:max(data.X1), min(data.X2):0.1:max(data.X2), min(data.X3):0.1 :max(data.X3));
y_fit = ベータ(1) + ベータ(2)*x1 + ベータ(3)*x2 + ベータ(4)*x3;
% 回帰曲面の描画の詳細については、公開アカウント「Digital Analog Kitten」を参照してください。
スライス(x1, x2, x3, y_fit, [], [], min(data.X4));
xlabel('X1');
ylabel('X2');
zlabel('X3');
title('4 変数による重回帰');
legend('データポイント', '回帰曲面');
控えてください。
質問Aのコード:
輸入トーチ
pathlibインポートパスから
PILインポート画像から
matplotlib.pyplotをpltとしてインポート
詳細については、公開アカウントを参照してください: Digital Analog Kitten
#YOLOv8 モデルをインポート
model_path = Path("path/to/yolov8") #YOLOv8 のパスに置き換えます
model = torch.hub.load(model_path, 'custom', path='path/to/yolov8/weights/yolov8.pt', source='local' )
# 画像を読み込む
image_path = "path/to/your/image.jpg" #画像パスに置き換えます
img = Image.open(image_path).convert('RGB')
# ターゲット検出を実行する
結果 = モデル(画像)
# カテゴリ「Apple」で結果を抽出
apple_results = [result.pred[0] の結果の結果 if result[5] == 53] # apple が YOLOv8 のカテゴリ 53 にあると仮定します
#リンゴの数を数えます
apple_count = len(apple_results)
# 画像上の結果にラベルを付ける
img_result = results.imgs[0] # 注釈結果を含む画像を取得します
fig, ax = plt.subplots(1, 1, figsize=(12, 8))
ax.imshow(img_result)
apple_results のボックスの場合:
x、y、w、h、conf、cls = ボックス
rect = plt.Rectangle((x, y), w, h, linewidth=2,edgecolor='r', facecolor='none')
ax.add_patch(rect)
ax.text(x, y, f'Apple', fontsize=12, color='r', Weight='bold')
plt.show()
#リンゴの数を出力する
print(f"リンゴの数: {apple_count}")
詳細については、公開アカウントを参照してください: Digital Analog Kitten