LoginSignup
3
0

More than 1 year has passed since last update.

ChatGPT-4でMATLAB Codyの問題を解いてみた

Last updated at Posted at 2023-03-18

はじめに

OpenAIのChatGPTが、巷で話題になっています。
ChatGPTがプログラミングもできるとのことで、はたして、MATLAB Codyの問題が解けるのか??
最新のGPT-4で試してみました。

※ここでは、最新のAI技術であるChatGPTの評価を目的に、MATLAB Codyの問題を例題としております。Codyのスコアを上げることを目的としておりませんので、あらかじめご了承ください。

MATLAB Codyとは

ChatGPTさんに聞いてみます!

MATLAB Codyについて説明してください

MATLAB Codyは、MathWorks社が提供するMATLABおよびSimulinkユーザーコミュニティのためのオンラインプログラミングチャレンジプラットフォームです。Codyは、MATLABの技能を磨き、知識を共有し、他のユーザーと協力して問題を解決することを目的としています。Codyには、さまざまな難易度のプログラミング問題が用意されており、参加者は問題を解のものも決し、解答を提出することでポイントを獲得できます。

Codyの主な機能は以下の通りです。
問題の解決: ユーザーは、自分のMATLABのスキルに合わせて選んだ問題に取り組むことができます。問題は、簡単なものから高度なものまで、さまざまなレベルが用意されています。

解答の提出と評価: ユーザーは、解答をCodyに直接提出し、その正確さや効率性を評価してもらうことができます。Codyは解答を自動的に評価し、正しい解答が提出された場合はポイントを与えます。

コミュニティとの協力: ユーザーは、他のユーザーと協力して問題を解決することができます。また、解答や解法について議論したり、フィードバックを受け取ったりすることもできます。

ランキングとバッジ: Codyでは、ユーザーの獲得ポイントに基づいてランキングが作成されます。また、特定の成果に対してバッジが授与されることもあります。

グループとチーム: ユーザーは、特定のトピックや関心事に基づいてグループを作成したり、チームを結成して競争したりすることができます。

MATLAB Codyは、MATLABのスキルを向上させるだけでなく、ユーザーコミュニティと交流し、知識を共有するための素晴らしいプラットフォームです。

ChatGPT-4への問題入力と回答例

初級編 Easy

MATLABで次の問題を解いてくださいという文章の後に、問題文をそのまま記述します。
image.png

ChatGPTによる回答

image.png

Answer by GPT-4
% Input vector x
x = [1 2 3 5];

% Calculate the sum of the elements in the vector
y = sum(x);

% Display the output
disp(y);

結果

正解 :ok_woman:

中級編 Medium

image.png

ChatGPTによる回答

image.png

Answer by GPT-4
function y = every_other_element(x)
    y = x(1:2:end);
end

結果

正解 :ok_woman:

上級編 Hard

ChatGPTによる回答

image.png

Answer by GPT-4
function [v, n] = push(v, x)
    % If v is a row vector, ensure x is also a row vector
    if isrow(v)
        x = x(:)';
    % If v is a column vector, ensure x is also a column vector
    elseif iscolumn(v)
        x = x(:);
    end

    % Append x to v
    v = [v, x];

    % Get the new number of elements
    n = numel(v);
end

結果

image.png

途中までテストはクリアしましたが、エラーが発生したようです…:expressionless:
調べててみると...
どうやら、行ベクトル、列ベクトルの違いを考慮するという、MATLABの罠に引っかかったようです。
もしかして、問題の文章があいまいなのが要因では...?:confused:
修正してみます。
image.png

ChatGPTによる回答

image.png

Answer by GPT-4
function [v, n] = push(v, x)
    % If v is empty, preserve the dimensions of x
    if isempty(v)
        v = x;
    % If v is a row vector, ensure x is also a row vector and append
    elseif isrow(v)
        x = x(:)';
        v = [v, x];
    % If v is a column vector, ensure x is also a column vector and append
    elseif iscolumn(v)
        x = x(:);
        v = [v; x];
    end

    % Get the new number of elements
    n = numel(v);
end

質問を修正した結果

正解 :ok_woman:

さいごに

ChatGPTさん、ゴメン🙇
質問の仕方が悪かったようです😅

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0