Строковый вывод в MATLAB - PullRequest
       1

Строковый вывод в MATLAB

0 голосов
/ 05 сентября 2010
clc
clear all
ii=1;

S =cell(size(30,1)); % cell size.


for ii=1:1:3    
    rand_id= rand(1,1) *3; % Randomly generte a number between 1 to 3.

    if (rand_id<1)
        rand_id=1; % 0 is ommitted.
    else rand_id=floor(rand_id);
    end

% rand_id will be used to open a previously saved file randomly.

    if (rand_id==1)
        f_id_1=fopen('C1.txt','r'); % Open and read a file. 
    elseif (rand_id==2)
        f_id_1=fopen('C2.txt','r'); % Open and read a file. 
    end

% saning the file to read the text. 
    events_1=textscan(f_id_1, '%s', 'Delimiter', '\n');
    fclose(f_id_1);
    events_1=events_1{1}; % saving the text. 
    rand_event=events_1{randi(numel(events_1))}; % selects one text randomly.

    S{ii}=rand_event;
end

Я написал приведенный выше код для случайного выбора файла.Файл содержит количество предложений.Моя цель состоит в том, чтобы случайно выбрать предложение.Я это сделал.Теперь моя проблема в том, что я не могу сохранить все выбранные предложения внутри цикла.

Когда я объявляю S(ii)=rand_event Это показывает ошибку.Когда я пытаюсь S(ii)=rand_event(ii), он возвращает только 1, 2, 3 символа в трех циклах.

Пожалуйста, помогите.

1 Ответ

2 голосов
/ 05 сентября 2010
S(ii)

считается матрицей с четко определенными размерами. Я думаю, что ваши «предложения» имеют разную длину. Одним из решений может быть использование массива ячеек.

S{ii}=rand_event

Массивы ячеек используют фигурные скобки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...