2

在运行我的一个程序时,我需要扫描一个相当大的矩阵 (100*700) 来识别异常情况。

我最初的想法是在需要进行数据扫描时设置一个断点,但我不喜欢这种解决方案。

我正在寻找的内容相当于openvar('A')在函数调用期间调用(除了我目前不能这样做)。另一种方法是disp使矩阵变得很差。

有什么提示吗?

编辑:
我正在尝试做的一个示例:

function main

time = 0:pi/100:4*pi;
inV = (1:100)';

data = 10*diag(rand(100,1))*sin((inV)*time);

error = ceil(350*rand); % find the anolmaly
data( ceil(100*rand),error:(error+20))= -13;
test = true;

openvar('data')

while test

    close all;
    figure(1)
    hold on;
    plot(data')

    test= (input(strcat('Further review? ')));
    if (test)
        data(test,:) = [];
    end
end

如果我使用断点,我可以扫描数据,知道它-13正在对其造成严重破坏(这-13是我使用的一些随机数,实际上,它要复杂得多)。然而,断点只存在于当前的 Matlab 会话期间。

我正在使用 Matlab 2012a

4

2 回答 2

1

好的,所以我要找的是

t = uitable;
set(t,'Data',data)

又好又简单

于 2012-07-11T03:05:37.793 回答
0

(1) 可以使用 DISP(NUM2STR(DATA,FORMAT)) 或者 FPRINTF 来更正确地渲染矩阵,但是显示一个 100x700 的矩阵确实不是一个好主意。

(2) 您正在使用 Matlab,所以我认为 Matlab 应该为您找到矩阵中的不规则性。如果您手动完成这样的工作,使用 Matlab 有什么意义。我建议用算法找到矩阵中的不规则性(你可以提供一些关于不规则性的细节,也许有人会想出一个关于如何做到这一点的想法)。

于 2012-07-10T13:11:46.727 回答