0

文字列、フレーズとして「test」を入力すると、次のエラーが表示されます。

    >> CreateBarcodePattern('test')
In an assignment  A(I) = B, the number of elements in B and I must be the same.

Error in CreateBarcodePattern (line 5)
    p(i) = code128B{find(ismember(code128B,phrase(i)))-109,3};

関数 CreateBarcodePattern は次のとおりです。

function [p] = CreateBarcodePattern(phrase)
load('code128B');
p = [];
for i = 1:length(phrase)
    p(i) = code128B{find(ismember(code128B,phrase(i)))-109,3};
end

5 行目にブレーク ポイントを配置し、ポイント i = 1、p = [] (ここまでは空​​の配列)、code128B = <108x3 セル> (108 x 3 セルに文字列がいっぱい)、phrase = 'test '。次の行で上記のエラーが表示されます。私はやってみました:

load('code128B.mat')
p = [];
phrase = 'test';
p(1) = find(ismember(code128B,phrase(1)))-109;
p(1) = code128B{p(1),3}

しかし、最後の行でエラー:

In an assignment  A(I) = B, the number of elements in B
and I must be the same.

再び与えられる。p = 84私が期待しているエラーの直前に、これは前p(1) = fi... の行が原因です。

code128B{find(ismember(code128B,'t'))-109,3};

正しい変数を返すので、これでうまくいくことがわかります。私がそれを繰り返しているとき、それはうまくいきません。どうすればこれを修正できますか?

4

2 に答える 2