2017-12-13 10 views
2

私は現在、MATLABを初めて使用しています。私のコードは以下の通りです。「インデックスが行列の寸法を超えています」というエラーが表示されるのはなぜですか?

a = [105 97 245 163 207 134 218 199 160 196 221 154 228 131 180 178 157 151 ... 
    175 201 183 153 174 154 190 76 101 142 149 200 186 174 199 115 193 167 ... 
    171 163 87 176 121 120 181 160 194 184 165 145 160 150 181 168 158 208 ... 
    133 135 172 171 237 170 180 167 176 158 156 229 158 148 150 118 143 141 ... 
    110 133 123 146 169 158 135 149]; 

mean = mean(a) 
std = std(a) 
max = max(a) 
min = min(a) 
range = range(a) 

答えて

4

は、変数に既存の関数と同じ名前を与えてはいけない:私はちょうど私はエラーを得続ける提供する機能のための「インデックス行列の次元を超えた」理由について質問があります。これはshadows the functionです。引数を指定して関数を呼び出そうとすると、代わりにindexingという変数が引数付きで終了します。この場合、存在しない変数の要素をインデックスしようとします。

使用clear新しい変数名での計算を再実行し、その後、既存の変数を削除するには:クリア(ワークスペースからすべての変数を削除します)と近い

clear mean std max min range; 
meanResult = mean(a); 
stdResult = std(a); 
... 
+0

助けてくれてありがとう!私が「クリア」を使用せず、関数の名前を変更しただけではどうなるでしょうか? – Kenny

+3

@Kenny:これらは組み込みのMATLAB関数です。あなたはそれらを変更することはできません。 – gnovice

0

使用CLC(クリアコマンドウィンドウ)、すべての(閉じ以前使用した数字をオフにしてください)。これはスクリプトの実行を助けることができます。

clc, clear, close all 

a = [105 97 245 163 207 134 218 199 160 196 221 154 228 131 180 178 157 151,..., 
    175 201 183 153 174 154 190 76 101 142 149 200 186 174 199 115 193 167,..., 
    171 163 87 176 121 120 181 160 194 184 165 145 160 150 181 168 158 208,..., 
    133 135 172 171 237 170 180 167 176 158 156 229 158 148 150 118 143 141,..., 
    110 133 123 146 169 158 135 149]; 

Mean = mean(a) 
Std = std(a) 
Max = max(a) 
Min = min(a) 
Range = range(a) 
関連する問題