我試圖將陣列(值)中的值重復到單元格陣列,其中各個元素的大小不相等(由 array_height 和 array_length 指定)。
我希望將其應用于更大的資料集(包含 ~100 x ~100 個值),我當前的解決方案是為每個值設定一行代碼(下面的代碼示例)。當然有更好的方法......請有人提供替代解決方案嗎?
C = cell(3,2);
values = rand(3,2);
array_height = randi(10,3,2);
array_length = randi(10,3,2);
C{1,1} = repmat((values(1,1)),[array_height(1,1),array_length(1,1)]);
C{2,1} = repmat((values(2,1)),[array_height(2,1),array_length(2,1)]);
C{3,1} = repmat((values(3,1)),[array_height(3,1),array_length(3,1)]);
C{1,2} = repmat((values(1,2)),[array_height(1,2),array_length(1,2)]);
C{2,2} = repmat((values(2,2)),[array_height(2,2),array_length(2,2)]);
C{3,2} = repmat((values(3,2)),[array_height(3,2),array_length(3,2)]);
uj5u.com熱心網友回復:
如果您在 for 回圈中執行此操作,它可能如下所示:
for i = 1:size(C,1)
for j = 1:size(C,2)
C{i,j} = repmat(values(i,j),[array_height(i,j),array_length(i,j)]);
end
end
但是,如果您嘗試在更大的資料集上生成或使用它,則此代碼片段可能會花費很長時間!我懷疑無論您的總體目標是什么,matlab 對矩陣和向量的許多優化都可以更好地實作,但如果沒有更多資訊,我無能為力。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/341049.html
