使用matlab生成合成数据2d x t x v
我正在尝试生成/模拟一组合成/模拟数据集,以便在matlab中生成合成血流图像。但我不知道如何或从哪里开始 我知道我应该使用网格函数,但我如何使其成为时间维度 如果有人能帮助/引导我度过难关,我将不胜感激。我想生成一个大小为25x25x10x4的数据集。这是X X Y X t X V。图像应该与此类似: 或者像这样: 提前谢谢你 数据集#1: 使用您最喜欢的线表示法(极坐标、线性等)并随机生成线的参数。例如,如果选择使用matlab生成合成数据2d x t x v,matlab,3d,simulation,mesh,synthetic,Matlab,3d,Simulation,Mesh,Synthetic,我正在尝试生成/模拟一组合成/模拟数据集,以便在matlab中生成合成血流图像。但我不知道如何或从哪里开始 我知道我应该使用网格函数,但我如何使其成为时间维度 如果有人能帮助/引导我度过难关,我将不胜感激。我想生成一个大小为25x25x10x4的数据集。这是X X Y X t X V。图像应该与此类似: 或者像这样: 提前谢谢你 数据集#1: 使用您最喜欢的线表示法(极坐标、线性等)并随机生成线的参数。例如,如果选择y=mx+c,则随机生成m和c。现在您已经定义了线,可以在图像上绘制它了
y=mx+c
,则随机生成m
和c
。现在您已经定义了线,可以在图像上绘制它了
数据集#2:
它们看起来像二维高斯。按以下方式使用
[X Y] = meshgrid(x_range,y_range);
Z = reshape( mvnpdf([X(:) Y(:)],MU,SIGMA) ,size(X));
imagesc(Z);
使用一些随机生成的MU
和SIGMA
,使MU
位于x\u范围
和y\u范围
。例如,x_范围=-3:0.1:3;y_范围=x_范围代码>和
亩=
西格玛=
1.2647 0.3760
0.3760 1.0938
为了补充@Jacob非常具体的答案,您需要一个4DMxNxTxV
矩阵。在这种情况下,根据post,MxN
是每个图像的维度,T
是时间维度,V是每个时间帧的通道或采样数(RGB为3个,任何光谱图像为>3个)
- 对于每个T,生成V图像李>
- 使用数据集#1和数据集#2的随机参数模拟V图像
- 将每个数据集的所有内容放在一个4D矩阵中(即使用双精度for或串联)
根据@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
如果您对原来的帖子有重大修改,请注明为“更新”,或提供进一步的澄清。否则,提供的答案可能不再有意义。请停止破坏您的问题。这些答案不仅不再有意义,而且是不尊重他人的行为,破坏了人们为帮助你所付出的努力。
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