Просто пройдите всю строку и поместите каждый символ на свое место. Не забывайте, что строка «ABC» занимает четыре байта.
Когда вы просматриваете символы входной строки, выходная строка которой они вводят, выглядит следующим образом:
0, 0, 0, 1, 1, 1, 2, 2, 2 , 3, 3, 3
blockquote>Это
i/3
. Схема положения, в котором они находятся на выходе, выглядит следующим образом:0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2
blockquote>Это
i%3
. Таким образом, еслиi
является позицией во входной строке, позиция в выходном массиве будет[i/3][i%3]
. Таким образом:#include <stdio.h> #include <string.h> #define MAX 512 int main(){ char str[MAX]="ABCDEFGHIJKL"; int count=0, i=0; char sub[3]; char arr[MAX/3][4]={}; /* Go through the string putting each character in its proper place */ for (int i = 0; i < strlen(str); ++i) arr[i/3][i%3] = str[i]; /* Print the strings out */ for (int i = 0; i < (strlen(str) / 3); ++i) printf("%s\n", arr[i]); }
ABC
blockquote>
DEF
GHI
JKL
Чтобы ответить на ваш вопрос, запустите matlab следующим образом:
matalb -nodesktop -nosplash
Это работает на Linux и Windows. В Linux вы вводите это в командной строке, и Matlab будет запускаться в том же командном окне в текстовом режиме. Таким образом, вы получите "оболочку Matlab", которую вы хотели. В Windows перейдите в каталог, в котором установлен Matlab, и введите ту же команду. Он откроет урезанное окно командной строки matlab безо всяких наворотов рабочего стола matlab.
Теперь, по моему личному мнению, редактор matlab с его встроенным отладчиком - ваш друг. Он также имеет привязки клавиш Emacs, если это помогает. Также проще выполнять команды и просматривать результаты на рабочем столе Matlab, чем когда Matlab запускается в текстовом режиме. Единственный раз, когда вы действительно хотите использовать текстовый режим, это если ваш код Matlab занимает много времени, и вас интересует только конечный результат. Или если вы используете несколько экземпляров Matlab. Текстовый режим занимает гораздо меньше памяти, и в linux вы можете легко запустить запуск из командной строки и перевести его в фоновый режим.
Фактически, проверьте аргументы командной строки для matlab. Вы можете сделать другие интересные вещи, например, заставить matlab выполнить единственную функцию и выйти из нее, или выполнить перенаправление скрипта в matlab, например: matlab
On Linux environments, Matlab can be started in text mode
matlab -nosplash -nodesktop
but this doesn't work on Windows. which starts it in the current shell. On Windows, this opens a new text-only window. I know of no way to get it to run inside the current console on Windows.
Perhaps there's some way you can attach to it running it in http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/ref/matlabwindows.shtml&http://www.google.com/search?rlz=1C1GGLS_enUS302US311&sourceid=chrome&ie=UTF-8&q=matlab+command+line+windows'>automation server mode.
Another option if you're really desperate could be to make a virtual machine and install linux in it. Then I imagine there are ways to configure vim to work nicely with Matlab (I'm an emacs person these days and there are solutions for emacs).
Я бы сделал следующее:
. причина, по которой это не сработает, поскольку MATLAB не должно волновать, что использовалось для редактирования файла.
Это не даст вам «оболочку», но весь графический интерфейс, но я не могу придумать причину, почему вы не хотел бы иметь это, если это доступно.
Вы действительно готовы работать с dev без отладчика m-файлов? Мне кажется, что вы бы ограничились практически тривиальными программами. После очень короткого периода обучения, я думаю, вы найдете фантастический встроенный отладчик Matlab (а я - специалистом по VS).
Если вы настаиваете на этом, лучшим вариантом будет скомпилировать ваши m-файлы. быть управляемым в одиночку. Для этого потребуется доступ к (не дешевому) компилятору matlab .
Обратите внимание, что существует значительная разница между компилятором, распространяемым с версиями matlab до 6.5, и теми, которые распространяются с matlab 7+ (не знаю номеров версий компилятора). В 6.5 компилятор генерировал c-код, который можно было редактировать и компилировать отдельно. Начиная с 7 лет, компилятор не выполнял компиляцию, преобразование, или любое генерирование кода в этом отношении: при запуске «скомпилированной» программы сегодня практически запускается ее на виртуальной машине Matlab, называемой MCR - которая охватывает почти все функциональные возможности matlab. Это массивный - установщик MCR (установщик!) Весил 130M в прошлый раз, когда я проверял.
Некоторые дебаты по этому поводу все еще можно найти в новостных группах, но это сейчас не важно. На самом деле подход MCR кажется ближе к тому, что вы ищете.
И, кстати, для меня matlab -nosplash -nodesktop
отлично работает на окнах - он запускает matlab в качестве консоли, но это лишит вас обоих текстового редактора и отладчика ...
У меня была та же проблема, что и у Кигурая. Мне нужно было управлять Matlab с помощью Python, поэтому я нашел следующее решение:
В Python:
import os
os.chdir('W:\\monrépertoire')
os.spawnl(os.P_NOWAIT, 'monscript.bat')
В monscript.bat:
matlab.exe -r interp_3D -nodesktop –nosplash