Your method works perfectly well. An alternative option would be
theta = 10
wavelength = [500:10:700]
m = 1
d = (m.*wavelength)/sin(theta)
spatial_frequency = 1./d
plot(wavelength*1e-9, spatial_frequency,"r--")
xlabel("Wavelength (nm)")
ylabel("Spatial Frequency (/m)")
where I've used one vector of wavelengths (in meters) and then multiplied it by 1e-9 for the plot.