配列の正規化について

セルの中身に対して正規化する関数はありますか?

 Accepted Answer

Kenta
Kenta on 22 Jul 2020

0 votes

datavarsというところを'ResponseImage'としてはどうでしょう?

6 Comments

donna
donna on 22 Jul 2020
今回もありがとうございます.
試してみたのですができませんでした...(泣)
Kenta
Kenta on 22 Jul 2020
Edited: Kenta on 22 Jul 2020
N = normalize(patchesRead1,'DataVariables','ResponseImage');
とするとどういうエラーを返しますか?
そもそも、添付の画像を拝見するとSという構造体の中にpatchesRead1がある気がするのですが、
patchesRead1という変数に対して実行しなければなりません。
donna
donna on 22 Jul 2020
以下のようなエラーがでます...
構造体Sについてよくわからなかったので消してしまったのですが、まだpatchesRead1は構造体の中にあるということでしょうか...
Kenta
Kenta on 22 Jul 2020
すいません、この情報からだとよくわかりません。patchesRead1.matを添付していただけますか?
Kenta
Kenta on 22 Jul 2020
clear;clc
load patchesRead1
% N = normalize(patchesRead1,'DataVariables','ResponseImage');
B = cellfun(@myL2norm,patchesRead1.ResponseImage,'UniformOutput',false);
function output=myL2norm(input)
output=normalize(single(input),'norm');
end
データの方添付していただきありがとうございます。patchesRead1.ResponseImageという変数がセル配列で入っているので、セル配列の変数に対して、そのセルの中を対象に指定した関数を実行するcellfunというものがあります。それを使うと上のようにして、L2 normで正規化した値を返します。
ただ、深層学習に利用したいとなると、もともと、深層学習の入力層で正規化方法を指定できるのであまりこの操作は必要ないかもしれません。
Kenta
Kenta on 22 Jul 2020
よかったです。ちなみに、ただの興味なのですが、ここでsparse filterを利用する理由や目的について教えていただけるとうれしいです。

Sign in to comment.

More Answers (0)

Categories

Tags

Asked:

on 22 Jul 2020

Edited:

on 23 Jul 2020

Community Treasure Hunt

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

Start Hunting!