回答編集履歴
2
append suffix
test
CHANGED
@@ -6,4 +6,4 @@
|
|
6
6
|
|
7
7
|
余談ですが,`input`は[組み込み関数](https://docs.python.org/ja/3/library/functions.html)で用意されているものです.関数内で一時的とはいえ値で組み込み関数を上書きしてしまうのは一般的にナンセンスとされています.
|
8
8
|
|
9
|
-
また,長々と書かれている式ですが,ブロードキャスト
|
9
|
+
また,長々と書かれている式ですが,[ブロードキャスト](https://numpy.org/doc/stable/user/basics.broadcasting.html)を用いればより簡潔に記述できると思われます.簡潔に書くことで,今回のようなエラーの発生を防止できるよう,コード全体の見通しが良くなると思います.
|
1
fix answer
test
CHANGED
@@ -1,5 +1,9 @@
|
|
1
|
-
関数`dynamicalsystem(state, input)`における`np.vstack()`の中で`BB3*[3,0]`としている箇所があります.普通,`リスト * 整数`ではリストが複製されますが,`BB3`は浮動小数点数で,`浮動小数点数 * リスト`となっています
|
1
|
+
関数`dynamicalsystem(state, input)`における`np.vstack()`の中で`BB3*[3,0]`としている箇所があります.普通,`リスト * 整数`では掛けた整数の大きさ分だけのリストが複製されますが,`BB3`は浮動小数点数で,`浮動小数点数 * リスト`となっています少数点数という中途半端なサイズの配列を複製できないのでエラー`TypeError: can't multiply sequence by non-int of type 'float'`になります.
|
2
2
|
|
3
3
|
同様に`文字列 * 整数`は可能ですが`文字列 * 浮動小数点数`は不可能で同じエラーが出ます.
|
4
4
|
|
5
5
|
おそらく`BB3 * state[3, 0]`と書きたかったのだと察します.
|
6
|
+
|
7
|
+
余談ですが,`input`は[組み込み関数](https://docs.python.org/ja/3/library/functions.html)で用意されているものです.関数内で一時的とはいえ値で組み込み関数を上書きしてしまうのは一般的にナンセンスとされています.
|
8
|
+
|
9
|
+
また,長々と書かれている式ですが,ブロードキャスト演算を用いればより簡潔に記述できると思われます.
|