How to convert "64x128 single" into "64x128 double"?
1 次查看(过去 30 天)
显示 更早的评论
I imported an array from python with this shape: (5, 25, 64, 128, 1) It's 5 sets of 25 images that are 64x128. I tried plotting one of these images on matlab to check if the data imported correctly and it did. this is the code i used to print the image (see below).
nely=64
nelx=128
latent_its(1,1,:,1)
x(1:nely,1:nelx)=latent_its(1,2,:,:)
imagesc(-x); colormap(gray);axis equal; axis tight; axis off;pause(1e-6)
But, for some reason the workspace says that x is a "64x128 SINGLE" vs. "64x128 DOUBLE" (not sure what this means but it should be double, otherwise when I input this x variable into a topology optimization code I needed it for, I get this error (below). When I use a 64x128 double generated in matlab, code works.
Error using +
Sparse single array arithmetic operations are not supported.
Error in comp_gen>FE (line 90)
K(edof,edof) = K(edof,edof) + x(ely,elx)^penal*KE;
Error in comp_gen (line 19)
[U]=FE(nelx,nely,x,penal);
0 个评论
回答(1 个)
KSSV
2021-5-14
You can convert a array A which single into double using:
A = double(A) ;
Read about single and double.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Convert Image Type 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!