2017-10-13 11 views
-1

ここでは、35x5データセットの試験成績書をExcelファイルに読み込み、各学生の平均テストスコアを計算しようとしています35人の学生、それぞれ5人の試験)。その後、平均スコアに基づいて各生徒が獲得したレターグレードを吐き出すことになっています。このMatLabエラーが私に伝えていることを理解できません

%65 P 
%Penna Garrett 

%Exam Grades part 2 

%Loading the Exam Scores from Excell 
grades = xlsread ('Exam_Grades_Data_Part2') 
%Don't need to do display because xlsread throws it into command window 


%Letter grade earned based on this scale of average test scores: 
%0-59 = E 
%60-69 = D 
%70-75 = C 
%76-79 = C+ 
%80-85 = B 
%86-89 = B+ 
%90-100 = A 

%To Calculate the average for all rows I will use a loop function 
temp = size(grades) 

%Here is my 'for' function 
loopend = size(grades,1) 

for i=1: loopend 
    average(i) = mean(grades(i,1:5)); 

    if (average(i) <= 59) 
     letter{i} = 'E' ; 
    elseif (average(i) <= 69) 
     letter{i} = 'D' ; 
    elseif (average(i) <= 75) 
     letter{i} = 'C' ; 
    elseif (average(i) <= 79) 
     letter{i} = 'C+' ; 
    elseif (average(i) <= 85) 
     letter{i} = 'B' ; 
    elseif (average(i) <= 89) 
     letter{i} = 'B+' ; 
    elseif (89 < average(i) <= 100) 
     letter{i} = 'A' ; 
    end 
end 


display('Hopefully you have recieved the grade you wanted. If not, I may see you next year! Dr. P') 
display (letter) 

私の人生では、私が得るエラーを理解できません。 コマンドウィンドウに次のように表示されます。

セル以外の配列オブジェクトへのセル内容の割り当て。 S65_Garrett_Penna_07で

エラー(線42)

文字{I} = 'A';

答えて

1

変数 "letter"は、セル以外のデータ型(double型など)としてワークスペースに格納されている場合があります。おそらく、この変数をforループの上のどこかのセルとして初期化する必要があります。

letter = {}; 
関連する問題