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
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.
Walter Roberson
2016-7-9
I installed R2013a on Windows 10 and tested, and had no problem with this file.
回答(1 个)
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 个评论
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 Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!