table型の変数の中身にSparseFilterを使いたいです!
信息
此问题已关闭。 请重新打开它进行编辑或回答。
显示 更早的评论
初心者です.失礼します...
table型変数Tの中身に関して,SparseFilterをかけたいです.
以下のコードを作成しました.
for r=1:256
tr = T{r,1}{1};
rng default % For reproducibility
q = 100;
Mdl = sparsefilt(tr,q,'IterationLimit',20);
wts = Mdl.TransformWeights;
W = reshape(wts,[11,11,3,q]);
[dx,dy,~,~] = size(W);
for f = 1:q
Wvec = W(:,:,:,f);
Wvec = Wvec(:);
Wvec =(Wvec - min(Wvec))/(max(Wvec) - min(Wvec));
W(:,:,:,f) = reshape(Wvec,dx,dy,3);
end
m = ceil(sqrt(q));
n = m;
img = zeros(m*dx,n*dy,3);
f = 1;
for i = 1:m
for j = 1:n
if (f <= q)
img((i-1)*dx+1:i*dx,(j-1)*dy+1:j*dy,:) = W(:,:,:,f);
f = f+1;
end
end
end
imshow(img,'InitialMagnification',300);
end
このコードでのエラーの内容がこちらです

また,table型変数Tも添付いたします.
3 个评论
Kenta
2020-7-24
こんにちは、大まかな方針として、まずはどの行でエラーを返しているのか、またそれがわかる場合は、どの行でエラーを返しているのかを質問文で明示するのがよさそうです。いきなりfor文にして
for r=1:256
とするのではなく、r=1;などとして、すべてのrでエラーを返すのか、それともFOR文特有の問題でエラーを返しているのかをまずは見ることができます。(もしそこは明らかであればあらかじめ質問文にも書いて、より怪しいポイントを詳しく述べる方がいろんな意味で回答が得られやすそうです)
今回は
Mdl = sparsefilt(tr,q,'IterationLimit',20);
ではじめのエラーを返しますが、そこまでわかると例題を見てみて、そこでの
data = load('SampleImagePatches');
の1番目のデータ(data.X)と今回の tr がどうちがうか見比べるとどう変更したらよいかわかりそうです。
donna
2020-7-29
Kenta
2020-7-30
「ワークスペース」にある、dataというところをクリックしていけばどんどんその中身が見れると思いますがいかがでしょうか?
回答(0 个)
此问题已关闭。
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!