1

このエラーが表示される理由を誰か教えてもらえますか -- ??? cell から double への変換中に次のエラーが発生しました: Error using ==> double cell から double への変換はできません。

エラー ==> 18 時のテスト CX(end+1,:) = temp(1);

コードは次のとおりです。

file = fopen('C:\Program Files (x86)\Notepad++\testFile.txt'); % open text file

tline = fgetl(file); % read line by line and remove new line characters

%declare empty arrays
CX = [];
CY = [];
CZ = [];

while ischar(tline) % true if tline is a character array
    temp = textscan(fid,'%*s%f%f%f','Delimiter',',<>'); % loads the values from all rows with the specified format into the variable data

    CX(end+1,:) = temp(1);
    CY(end+1,:) = temp(2);
    CZ(end+1,:) = temp(3);

    tline = fgetl(file);
end

fclose(file); % close the file

plot3(CX, CY, CZ) % plot the data and label the axises
xlabel('x')
ylabel('y')
zlabel('z') 
grid on
axis square
4

2 に答える 2

3

簡単な推測: 中括弧の使用は役に立ちますか?

CX(end+1,:) = temp{1}
于 2012-05-23T13:40:10.413 に答える
2

cell2matを使用して、セル配列 (textscan返されるもの) から数値配列に変換します。この数値配列は、他の数値配列と共に使用できます (この場合は追加など)。

また、連結に使用したアプローチではなく、 vertcatを使用することをお勧めします。

CX = vertcat(CX, cell2mat(temp(1)));

または、3 つの値をすべて 1 行に読み取り、代わりに N 行 3 列の行列に連結することもできます...多くのオプションがあります。

于 2012-05-23T13:39:13.643 に答える