Как получить вывод Matlab, который появился в окне команд
Как получить выход Matlab? НЕ весь вывод (я знаю, дневник может помочь)
Простой пример:
>> st = rng
st =
Type: 'twister'
Seed: 0
State: [625x1 uint32]
что я хочу, это скопировать вывод в буфер обмена. когда я использую функцию буфера обмена, возникает ошибка:
>> clipboard('copy', st)
Error using mat2str (line 54)
Input matrix must be numeric.
Error in clipboard (line 56)
stuff = mat2str(stuff);
Могу ли я легко получить выходные строки в буфер обмена вместо использования мыши, выберите... копировать...
Спасибо!
добавить:
Спасибо, тьфу! Скопируйте представление DISP - это то, что я хотел.
но я мог бы получить что-то в буфере обмена, как это после того, как я запустил команду toString1 (rng):
>> rng
ans =
Type: 'twister'
Seed: 11284109
State: [625x1 uint32]
1 ответ
Чтобы скопировать матрицу в буфер обмена, я бы рекомендовал MAT2CLIP FileExchange. Он поддерживает не только строки или числовые матрицы, но также смешанный массив ячеек, логические и т. Д.
Это не поддерживает структуры, хотя. Если вам нужно скопировать отдельные поля, вы все равно можете использовать mat2clip. Вы можете установить for-loop через поля структуры и использовать pause
вставить поля из буфера обмена.
Если вы заинтересованы в копировании всей структуры или ее представления в DISP, проверьте этот вопрос SO - Как получить результат DISP в качестве возвращаемого параметра в переменную?
Одним из решений этого вопроса является получение вывода DISP в строку, которую вы можете скопировать в буфер обмена с помощью mat2clip (универсально для любого объекта с display
метод):
toString = @(x) evalc('disp(x)');
mystring = toString(mystruct);
Другой ответ рекомендует STRUCT2STR от FileExchange. Проверьте также STRUCT2STR рекурсивный.