table型の変数の​中身にSparseF​ilterを使いたい​です!

初心者です.失礼します...
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 个评论

こんにちは、大まかな方針として、まずはどの行でエラーを返しているのか、またそれがわかる場合は、どの行でエラーを返しているのかを質問文で明示するのがよさそうです。いきなりfor文にして
for r=1:256
とするのではなく、r=1;などとして、すべてのrでエラーを返すのか、それともFOR文特有の問題でエラーを返しているのかをまずは見ることができます。(もしそこは明らかであればあらかじめ質問文にも書いて、より怪しいポイントを詳しく述べる方がいろんな意味で回答が得られやすそうです)
今回は
Mdl = sparsefilt(tr,q,'IterationLimit',20);
ではじめのエラーを返しますが、そこまでわかると例題を見てみて、そこでの
data = load('SampleImagePatches');
の1番目のデータ(data.X)と今回の tr がどうちがうか見比べるとどう変更したらよいかわかりそうです。
今回もありがとうございます!
気付くのが遅くなってしまい,申し訳ありません...
for文のアドバイスありがとうございます!これからはひとつひとつやってみます!
例題にある(data.X)の中身が知りたいのですが,調べ方が分からずに悩んでいます...
何かアドバイスありますでしょうか...?
「ワークスペース」にある、dataというところをクリックしていけばどんどんその中身が見れると思いますがいかがでしょうか?

回答(0 个)

此问题已关闭。

标签

尚未输入任何标签。

提问:

2020-7-23

关闭:

2021-8-20

Community Treasure Hunt

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

Start Hunting!