0
我有一個單詞長度可變的1x500單元格。例如:Matlab:重複字符串元素N次
words = {'SO','TODAY', 'IS', 'THURSDAY',...}
此外,我有整數2個500x1陣列,第一個是包含參照的起始行號碼,第二個包含參照結束行號。例如:
startRow = 283 endRow = 309
309 332
332 367
... ...
我需要做的是,我需要從283-308行填補1x3000矩陣零字「SO」(這樣的詞是每一行中),從排309-331與'TODAY'一詞,332-367與'IS'字等等,直到endRow的最後一個元素被處理。
這是到目前爲止我的代碼:
new_val = zeros(1,3000);
for t = 1:size(startRow,1)
count(1,t) = endRow(t)-startRow(t);
word{t} = words{t};
end
for i = 1:size(startRow,1)
new_val(1,startRow(i):endRow(i)-1) = repmat(word{1,i},count(i),1);
end
因爲分配後尺寸不匹配的情況在第二循環的問題。一次迭代後左手元素的大小爲[1,26],一次迭代後右手元素的大小爲[26,2],因爲顯然「SO」被計爲2個元素。我不知道該怎麼做這個問題,所以任何建議,提示和技巧都非常讚賞。謝謝!
好吧, 'SO' 實際上是2個元素: 'S' 和 'O'。 數字矩陣只能在每個位置存儲一個元素(實際上,如果您提供字符,它將存儲ASCII值)。 否則,您可以創建一個1x3000的單元矩陣,並且在每個單元格內可以存儲任何您想要的內容。 –
不應該是「count(i)+ 1」嗎? – Dan
我無法弄清楚如何創建一個1x3000的細胞矩陣,我似乎能夠做的就是創建一個細胞單元。 – Kaly