Help with a function in a loop

1 次查看(过去 30 天)
For example:
sampledata:
hello world
hello
hello world world
for i=1:size(sampleData,1)
[x y]=ngramsFreq(sampleData{i},n)
end
% ngramsFreq is a function that returns the frequence and sequences of n letters
I want to caculate x and y for each sentence and store it that after the loop ends and get the specific data for each sentence, how could I do it? I thought bulding a matrix but the size of x and y for each sentence is not equal.
could you help me? Thank's!

采纳的回答

Andrei Bobrov
Andrei Bobrov 2013-4-17
function [s1, f] = ngramsfreq(str,n)
n1 = numel(str) - n + 1;
s1 = str(hankel(1:n1,n1:n1+n-1));
[s1,~,c] = unique(s1,'rows','stable');
f = accumarray(c,ones(n1,1));
end
using
str = {'hello world','hello','hello world world'};
n = 2;
nn = numel(str);
S = cell(nn,1);
F = S;
for jj = 1:nn
[S{jj}, F{jj}] = ngramsfreq(str{jj},n);
end

更多回答(1 个)

Yao Li
Yao Li 2013-4-17
sampledata={'hello world','hello','hello world world'};
length(sampledata)
for i=1:length(sampledata)
for j=1:length(sampledata{i})
[x{i} y{i}]=%add your function here
end
end
  4 个评论
googo
googo 2013-4-17
maybe a simple question that whould help figure this out. when I'm writing [x{1} y{2}] , what does it mean?
googo
googo 2013-4-17
He explain how to store a series of vectors from a for loop but each vector has the same length. How could I store it when the lengths are diffrent?
I understand you use x{i} y{i} but when i'm typing x{1} [2 2 2] for example I get "Cell contents assignment to a non-cell array object." and don't understand the meaning.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Data Type Identification 的更多信息

标签

尚未输入任何标签。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by