【问题标题】:generate synthetic data 2d x t x v using matlab使用 matlab 生成合成数据 2d x t x v
【发布时间】:2012-09-24 18:24:59
【问题描述】:

我正在尝试生成/模拟一组合成/模拟数据集,以在 matlab 中生成合成血流图像。但我不知道如何或从哪里开始......

我知道我应该使用网格函数,但我如何使它可以在时间维度上?

如果有人可以帮助/指导我,我将非常感激。我想生成一个大小为 25x25x10x4 的数据集。即 X x Y x t x V。图像应该类似于:

或者像这样:

提前谢谢你!

【问题讨论】:

  • 如果您对原始帖子进行了重大更改,请将其表示为“更新”,或提供进一步的说明。否则提供的答案可能不再有意义。
  • 请停止破坏你的问题。答案不仅不再有意义,而且是不尊重的,并破坏了人们为帮助您而付出的努力。

标签: matlab 3d simulation mesh synthetic


【解决方案1】:

数据集 #1:

使用您最喜欢的线表示(极坐标、线性等)并为您的线随机生成参数。例如。如果你选择y = mx + c,随机生成mc。现在您已经定义了线条,use this SO method 将其绘制在图像上。

数据集 #2:

它们看起来像二维高斯。按以下方式使用mvnpdf

[X Y] = meshgrid(x_range,y_range);
Z = reshape(  mvnpdf([X(:) Y(:)],MU,SIGMA)   ,size(X));
imagesc(Z);

使用一些随机生成的MUSIGMA 使得MU 位于x_rangey_range 中。例如。 x_range = -3:0.1:3;y_range = x_range;

MU =

0.9575    0.9649

西格玛 =

1.2647    0.3760
0.3760    1.0938

【讨论】:

    【解决方案2】:

    为了补充 @Jacob 的非常具体的答案,您需要一个 4D MxNxTxV 矩阵。在此,根据帖子,MxN 是每个图像的维度,T 是时间维度,V 是每个时间帧的通道数或样本数(RGB 为 3,任何光谱图像为 >3) .

    • 对于每个 T,生成 V 图像。
    • 使用数据集 #1 和数据集 #2 的随机参数模拟 V 图像。
    • 将所有内容放在每个数据集的一个 4D 矩阵中(即使用双精度表示或连接)

    根据@Jacob 的建议,将rand() 替换为下面的generate_image(),即生成所需结构类型的随机样本的函数:

    M = 25; N = 25;
    T = 10; V = 4;
    
    DataSet1 = zeros(M,N,T,V);
    DataSet2 = zeros(M,N,T,V);
    
    for t = 1:T
       for v = 1:V
            DataSet1(:,:,t,v) = randn(M,N);
            DataSet2(:,:,t,v) = randn(M,N);
        end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 2012-10-10
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 2019-11-19
      相关资源
      最近更新 更多