Matlab load() command error when loading a saved cell from a .mat file

8 次查看(过去 30 天)
Hello, System: Matlab version: R2013a (8.1.0.604), 64-bit on windows 7 My problem: I have created a cell variable idx1 using a rangesearch function:
idx1 = rangesearch(b_values_50,2.1897,0.001);
b_values is a vector of type double. Then I save the cell to a .mat file:
save('idx1_index.mat','idx1') or
save('idx1_index.mat','idx1','-v7.3') or
save('idx1_index.mat','idx1','-v7')
I have attached this file below. Then I try to load it:
load('idx1_index.mat','-mat') or
load('idx1_index.mat') or
load('idx1_index')
And I get this popup:
And I get all these errors (below). Please comment with any solutions. Thanks Exception occurred during event dispatching:
java.lang.ClassCastException: [D cannot be cast to [Z
at com.mathworks.mlwidgets.array.ValuePanel$ROML.matlabEvent(ValuePanel.java:224)
at com.mathworks.jmi.MatlabMCR$AWTReplyEvent.run(MatlabMCR.java:1675)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at com.mathworks.mwswing.MJDialog.show(MJDialog.java:311)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.mathworks.mwswing.MJOptionPane.showOptionDialog(MJOptionPane.java:531)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:436)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:426)
at com.mathworks.mlwidgets.array.ArrayDialog$1.run(ArrayDialog.java:48)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception occurred during event dispatching:
java.lang.ClassCastException: [D cannot be cast to [Z
at com.mathworks.mlwidgets.array.ValuePanel$ROML.matlabEvent(ValuePanel.java:224)
at com.mathworks.jmi.MatlabMCR$AWTReplyEvent.run(MatlabMCR.java:1675)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at com.mathworks.mwswing.MJDialog.show(MJDialog.java:311)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.mathworks.mwswing.MJOptionPane.showOptionDialog(MJOptionPane.java:531)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:436)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:426)
at com.mathworks.mlwidgets.array.ArrayDialog$1.run(ArrayDialog.java:48)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at com.mathworks.mwswing.MJDialog.show(MJDialog.java:311)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.mathworks.mwswing.MJOptionPane.showOptionDialog(MJOptionPane.java:531)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:436)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:426)
at com.mathworks.mlwidgets.array.ArrayDialog$1.run(ArrayDialog.java:48)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception occurred during event dispatching:
java.lang.ClassCastException: [D cannot be cast to [Z
at com.mathworks.mlwidgets.array.ValuePanel$ROML.matlabEvent(ValuePanel.java:224)
at com.mathworks.jmi.MatlabMCR$AWTReplyEvent.run(MatlabMCR.java:1675)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at com.mathworks.mwswing.MJDialog.show(MJDialog.java:311)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.mathworks.mwswing.MJOptionPane.showOptionDialog(MJOptionPane.java:531)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:436)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:426)
at com.mathworks.mlwidgets.array.ArrayDialog$1.run(ArrayDialog.java:48)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at com.mathworks.mwswing.MJDialog.show(MJDialog.java:311)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.mathworks.mwswing.MJOptionPane.showOptionDialog(MJOptionPane.java:531)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:436)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:426)
at com.mathworks.mlwidgets.array.ArrayDialog$1.run(ArrayDialog.java:48)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at com.mathworks.mwswing.MJDialog.show(MJDialog.java:311)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.mathworks.mwswing.MJOptionPane.showOptionDialog(MJOptionPane.java:531)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:436)
at com.mathworks.mwswing.MJOptionPane.showMessageDialog(MJOptionPane.java:426)
at com.mathworks.mlwidgets.array.ArrayDialog$1.run(ArrayDialog.java:48)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
  2 个评论
Walter Roberson
Walter Roberson 2016-7-9
When I test your .mat on R2013a on OS-X El Capitan, or on R2016a on OS-X El Capitan, I have no difficulty.
I will need to check my virtual machines to see if I happen to have MATLAB installed in Windows... I think I might.

请先登录,再进行评论。

回答(1 个)

Image Analyst
Image Analyst 2016-7-7
This works fine for me
% See what's in the file before loading it
whos -file 'idx1_index.mat'
% Shows:
% Name Size Bytes Class Attributes
% idx1 1x1 296 cell
% OK, it's in there, so now load it in to a structure.
storedStructure = load('idx1_index.mat', 'idx1')
% Shows
% storedStructure =
% idx1: {[248 249 251 252 253 261 250 247 262 254 255 256 260 246 259 245 257 258 263 244 243 242 264]}
idx1Cell = storedStructure.idx1;
idx1DoubleArray = cell2mat(idx1Cell)
  3 个评论
Stepan Lavrinenko
Hello, Image Analyst, It seems like everything works fine on the windows machine (i.e. the loading is successful), but I still get the same error nonetheless. Both with your proposed routine and without it (using load('filename')). I am not sure if that has something to do with the machine I am working on or Matlab software version I am using. Thanks
Image Analyst
Image Analyst 2016-7-9
rangesearch takes 2 arrays as the first two arguments. That's not what you're passing in (I don't think) when you do
idx1 = rangesearch(b_values_50, 2.1897, 0.001);
The first array is okay, b_values_50, but for the second argument you have a number 2.1897 instead of an array with the same number of rows as b_values_50. Why is that?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by