Matlab

YUVを扱う

psedo noise

function out = pnsamp1(r,g,number)
% PN Sequence Generator
% 関数書式 / out = pnsamp1(s,g,m,number)
% r : 初期状態 
% g : 回路構成多項式
% number : PNシーケンス信号のサイズ
% out : PNシーケンス信号
% 
% 例1
% init = [1 1 1 1 1 1 1 1 1];	% シフトレジスタの初期状態量
% poly = [1 0 0 0 0 1 0 0 0 1];	% フィードバック回路(多項式)
% number = 51;			% PNシーケンス信号の長さ
% out = pnsamp1(init,poly,number); % PNシーケンス信号作成

br = zeros(1,length(r));
for t=1:number
    br(1) = mod(r*[g(2:end)]',2);
    br(2:end) = r(1:end-1);
    out(t) = r(end);
    r = br;
end

no return でおながいします

久しぶりにつかってみたら、参照渡し(Call by reference?)ができないことに気づく。 あれ、値渡しのみなのかい・・・。

Matlab Function

Wrapper

int[][] wrapperFunction(int[][] src) {
   function(src);
   return src;
}

じゃ、こんなの?

int[][] wrapperWaveletDecompose(int[][] src, int level){
   WaveletTransform2D wavelet;
   wavelet = new WaveletTransform2D(src, false);
   for(int iLevel=0; iLevel<level, iLevel++)    
       wavelet.decompose();
   return src;
}

javaを使いたいんです、wavelet、mctfとかを使い回したいんです

jarさえ作ってしまえばあとは簡単。ほとんどjava。でも、参照渡しできないんだったら、ちょっと扱いづらいような…。

javaaddpath /home/xxx/work/java/myclasses.jar
import packageA.* packageB,*;

たとえばこんな感じ (m_script.m)

import j2kwrapper.*;

array=ones(240,320,'single');
isInplace = false;
wavelet = WaveletTransfrom2D(array, isInplace);  %new
wavelet.decompose();  % 1-level decompose

参照渡しなら結果がarrayに更新。
でも、されない…
array = wavelet.getDataInt(); % return int32
array = wavelet.getDataFloat(); % return single

なんだ?関数ハンドルとは

@function_name

リンク

#urlbookmark(below)

その他

FIR


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS