tags:

views:

55

answers:

1
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

I wrote the above code to randomly select a file. The file contains number of sentences. My aim is to randomly pick a sentence . I did that. Now, my problem is I cant save all the picked sentences inside the loop.

When I declare S(ii)=rand_event It shows error. When I try S(ii)=rand_event(ii) It only returns 1, 2, 3 characters in the three loops.

Please help.

A: 
S(ii)

is considered to be a matrix with well defined dimensions. I guess that your 'sentences' have different length. One solution might be to use a cell array.

S{ii}=rand_event

Cell arrays use curly braces.

zellus
Zellus, Thanks. Yes my sentences have different dimensions. When I use S(ii)=rand_event(ii), it only stores character from the the sentences in accordance with ii. I tried S{ii}=rand_event. The error is "Cell contents assignment to a non-cell array object.". I trying to read a bit about cell_array. Any thoughts ?
Tinglin
Just tried, S =cell(size(rand_event));S{ii}=rand_event;I'm getting the out put for ii- final iteration only. Why so ?
Tinglin
@user437493: I suppose the above shown code is put into a plain m-file. While executing your code variables are instantiated in the matlab 'base workspace'. Calling clc at the beginning of your file will clean your command window, but not clear your variables. Add a 'clear all' at the beginning of your m-file. I interpret the error message as S instantiated as matrix, but tried to be accessed as cell array.
zellus
@user437493: Update your code example to show your complete m-file. I suppose you reinitialize the cell inside your loop, clearing the 'sentences' for all iterations but the last.
zellus
Updated the code. Is this about the cell size?
Tinglin

related questions