MATLAB中的字符串输出

时间:2010-09-04 20:45:10

标签: matlab

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 个答案:

答案 0 :(得分:2)

S(ii)

被认为是具有明确定义的维度的矩阵。我想你的'句子'有不同的长度。一种解决方案可能是使用单元阵列。

S{ii}=rand_event

单元格数组使用花括号。