Вы можете использовать np.matrix вместо np.array для определения 2D матриц. Например:
np.matrix('1 2; 3 4')
np.matrix([[1, 2], [3, 4]])
Для преобразования массива в матрицу используйте np.asmatrix :
a = np.array([[1, 2], [3, 4]])
m = np.asmatrix(a)
Но, как упомянуто в комментариях hpaulj, учтите:
Больше не рекомендуется использовать этот класс, даже для линейной алгебры. Вместо этого используйте обычные массивы. Класс может быть удален в будущем.
blockquote>Так что неплохо бы привыкнуть к использованию массивов numpy. Посмотрите это руководство https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html
Для преобразования скаляров или 1D-массивов в 2D-массивы есть функция np.atleast_2d
np.atleast_2d(3.0) array([[ 3.]]) np.atleast_2d([1, 2, 3]) array([[1, 2, 3]])
Я знаю, что это не совсем ответ на ваш вопрос, но Трей Джексон в основном объяснил проблему. Для обнаружения одной клавиши управления требуется низкоуровневый перехват клавиатуры в Windows, который, я не думаю, реализует Emacs.
Один из способов (включая внешнюю программу, но не требующий прав администратора) - использовать AutoHotkey . Все, что вам нужно, это следующий двухстрочный сценарий:
CapsLock::Ctrl
LCtrl::Capslock
Вам нужно будет запускать этот сценарий всякий раз, когда открыт emacs, но, к счастью, Autohotkey - довольно низкопрофильное приложение (обычно занимает около нескольких сотен КБ в памяти). Вы можете, например, выполнить этот сценарий в вашем .emacs, чтобы ваш управляющий ключ и клавиша Capslock менялись местами при каждом открытии emacs.
I believe it doesn't work because Windows (or X) doesn't pass an actual event for [capslock]
or [control]
- it's a modifier key, like [shift]
. Pressing a modifier key doesn't cause the application to get a keystroke, but if you press a modifier and a second (non-modifier) key, then you get the keystroke.
For example [a]
and [A]
are two different keys, one is the regular "a" and the other is essentially "shift-a". I'm sure you could set Windows up to have the "shift-a" actually send a "z" or something.
Because [capslock]
, [control]
, [shift]
, [meta]
are all modifier keys, they don't generate key events in and of themselves for the applications.
In short, Emacs doesn't get a [control]
key event that it can remap, it gets a C-a
event. This is generally done by the obvious combination of [control]
and [a]
keys. But, the event could be generated by a different keystroke, say [F10]
or even [y]
(confusing, yes).
This is how I understand it. Clarifications are welcome of course.
Самый простой способ переназначить CapsLock в Windows - загрузить эту CapsLockChanger утилиту, выбрать ключ для сопоставления с (Control) и поместить его в меню «Пуск-> Запуск». ,
Он остается в вашем лотке, выполняет работу по переназначению ключей и не требует возиться с реестром.
Вам не обязательно нужны права администратора для изменения реестра.
Фактически, реестр Windows - это сегментированный ресурс, очень похожий на файловую систему, и вы можете иметь отдельные разрешения для различных ветвей и узлов реестра.
Вы уверены, что ваше предположение о том, что вы не можете изменить реестр, верно?
Я думаю, что это верно по умолчанию в Vista, но не в предыдущей версии Windows.