1

matlab コードを実行するとエラーが発生します。ここでは、前のコードの出力の 1 つを新しいコードへの入力として使用しようとしています。

??? Reference to non-existent field 'y1'.

誰でも私を助けることができますか?

4

4 に答える 4

3

フィールドにアクセスする前に、フィールドが存在するかどうかを確認することをお勧めします。

if isfield( s, 'y1' )
    % s.y1 exists - you may access it
    s.y1
else
    % s.y1 does not exist - what are you going to do about it?
end

エドリックのコメントを考慮に入れるために、別の可能な方法は

try 
    % access y1
    s.y1
catch em
    % verify that the error indeed stems from non-existant field
    if strcmp(em.identifier, 'MATLAB:nonExistentField')
         fprintf(1, 'field y1 does not exist...\n');
    else
         throw( em ); % different error - handle by caller?
    end
end
于 2012-11-25T13:31:47.537 に答える