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个字符。
请帮忙。
答案 0 :(得分:2)
S(ii)
被认为是具有明确定义的维度的矩阵。我想你的'句子'有不同的长度。一种解决方案可能是使用单元阵列。
S{ii}=rand_event
单元格数组使用花括号。