0

これが私のコードです

%This function takes an array of 128Bvalue numbers and returns the equivalent binary
%values in a string phrase

function [PhrasePattern] = GetPatternForValuesFinal(BarcodeNumberValues)
    load code128B.mat;
    Pattern = {};
    %The correspomnding binary sequence for each barcode value is
    %identified and fills the cell array
    for roll = 1:length(BarcodeNumberValues);
        BarcodeRow = str2double(BarcodeNumberValues{1,roll}) + 1;
        Pattern{1,roll} = code128B{BarcodeRow,3};
    end
    %The individual patterns are then converted into a single string
    PhrasePattern = strcat(Pattern{1,1:length(Pattern)});
end    

この関数の目的は、数値の配列を使用し、それらを対応するバイナリ文字列値のセル配列に変換してから、これらの文字列を連結することです。エラーは、行 11 列 26 から発生します。

Pattern{1,roll} = code128B{BarcodeRow,3}; subscript indices must be either positive integers or logicals

これは、文字列のセル配列を作成できないということですか?

4

2 に答える 2

1

chappjc が指摘したように、問題はおそらくBarcodeNumberValues非整数または非正の値が含まれていることです。

次のコードはBarcodeNumberValues、整数への変換を試行し、機能しない場合は中止します。

[BarcodeRow, ~, ~, nextindex] = sscanf(BarcodeNumberValues{1,roll}, '%d', 1) + 1;
assert(nextindex == length(BarcodeNumberValues{1,roll}) + 1);
于 2013-09-15T06:46:17.377 に答える
1

文字列のセル配列を作成できます。

コードの問題はBarcodeRow、正の整数ではないことです。あなたの入力BarcodeNumberValuesが問題である可能性があります。小数値が含まれていないことを確認してください。

于 2013-09-15T04:23:07.343 に答える