matlab三维sar成像问题

二、目标坐标

  三维的目标,坐标也是三维的(x,y,z);

三、仿真反射系数设置

 编写三维矩阵用来存放目标的反射系数;

四、距离求解

 R=sqrt((X-x)^2+(Y-y)^2+(0-z)^2);

请问这个距离R,代码是怎么实现的呢?
是否方便交流一下?

你的这个矩阵平方计算没有加“.”,说明这个是因三个for循环写的!这样写的很麻烦,可以利用repmat()函数进行扩展,将矩阵大小扩展到一致就可以了。

clear;close all;clc;

xyz = [0 0 0]; % x y z 坐标

X1 = 1:0.01:9;
Y1 = -9:0.01:0;
Z1 = -5:0.1:5;

X_len = length(X1); % X1 长度
Y_len = length(Y1); % Y1 长度
Z_len = length(Z1); % Z1 长度
R = zeros(X_len,Y_len,Z_len); % 建立三维空矩阵,用于存放结果

% 扩展矩阵
X = repmat(X1',1,Y_len); % 将X1 扩展成X_lenY_len大小的二维矩阵
Y = repmat(Y1 ,X_len,1); % 将Y1 扩展成X_len
Y_len大小的二维矩阵
Z =Z1;

for index = 1:Z_len % 高度向循环
R(:,:,index)=sqrt((X-xyz(1)).^2+(Y-xyz(2)).^2+(Z(index)-xyz(3))^2);
end

向量自己的运算不是应该加‘.’吗?
比如想要对一个向量X中的每个元素都做平方运算,通过X.^2可以达到